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

      发布在:前端技术      评论:0 条评论

sqlite3本身并没有像pymysql一样原生提供字典形式的游标。

cursor = conn.cursor(pymysql.cursors.DictCursor)

官方提供的解决方法是:

import sqlite3

conn = sqlite3.connect("dh.db")
conn.isolation_level = None  # 这个就是事务隔离级别,默认是需要自己commit才能修改数据库,置为None则自动每次修改都提交,否则为""


def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d


conn.row_factory = dict_factory
# 获取到游标对象
cur = conn.cursor()
# 用游标来查询就可以获取到结果
cur.execute("select * from lists")
# 这次查询后只取一个结果,就是一维列表
res = cur.fetchone()

print(res)
cur.close()
conn.close()

参考链接:https://docs.python.org/2/library/sqlite3.html#sqlite3.Connection.row_factory

相关文章
热门推荐