欢迎光临散文网 会员登陆 & 注册

【python】sqlite3查询结果以字典形式返回

2022-08-21 18:45 作者:阿提艾斯  | 我要投稿

一、问题描述

python的sqlite3接口直接使用fetchone或fetchall返回的结果是元组和元组列表,不能直观的看出每个元素对应的名称是什么,如下图所示:

使用fetchone返回的查询结果:

fetchone返回的查询结果

使用fetchall返回的查询结果:

fetchall返回的查询结果

二、解决方案

在文章【python】sqlite3基础使用中有python使用sqlite3的基础知识,在创建sqlite3数据库连接获得conn句柄后,该句柄拥有一个属性row_factory,该属性控制着游标返回的结果形式,那我们就按照官方文档说明的样例修改该属性,使得返回结果为一个对象,该对象可以按名称访问到。

参考代码如下:

查看dict_factory中的cursor.description输出内容,返回的是数据库表的每个字段本身的信息:

cursor.description

再次使用查询语句查看返回结果:

使用fetchone返回的查询结果,可以看到返回结果以字典形式展示:

fetchone

使用fetchall返回的查询结果,fetchall返回的是一个list数组,每个元素都是一个dict字典:

fetchall

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

【python】sqlite3查询结果以字典形式返回的评论 (共 条)

分享到微博请遵守国家法律