【python】sqlite3查詢結(jié)果以字典形式返回

一、問題描述
python的sqlite3接口直接使用fetchone或fetchall返回的結(jié)果是元組和元組列表,不能直觀的看出每個(gè)元素對(duì)應(yīng)的名稱是什么,如下圖所示:
使用fetchone返回的查詢結(jié)果:

使用fetchall返回的查詢結(jié)果:

二、解決方案
在文章【python】sqlite3基礎(chǔ)使用中有python使用sqlite3的基礎(chǔ)知識(shí),在創(chuàng)建sqlite3數(shù)據(jù)庫連接獲得conn句柄后,該句柄擁有一個(gè)屬性row_factory,該屬性控制著游標(biāo)返回的結(jié)果形式,那我們就按照官方文檔說明的樣例修改該屬性,使得返回結(jié)果為一個(gè)對(duì)象,該對(duì)象可以按名稱訪問到。
參考代碼如下:
查看dict_factory中的cursor.description輸出內(nèi)容,返回的是數(shù)據(jù)庫表的每個(gè)字段本身的信息:

再次使用查詢語句查看返回結(jié)果:
使用fetchone返回的查詢結(jié)果,可以看到返回結(jié)果以字典形式展示:

使用fetchall返回的查詢結(jié)果,fetchall返回的是一個(gè)list數(shù)組,每個(gè)元素都是一個(gè)dict字典:

demo樣例:https://gitee.com/atiaisi/py_learn/blob/master/10_DataBaseOperation/10_01_sqlite.py
三、參考資料
python?sqlite3官方文檔:https://docs.python.org/2/library/sqlite3.html#sqlite3.Connection.row_factory