从 SQLite 查询获取字典
从 SQLite 数据库检索数据涉及获取与行对应的列表。虽然可以使用描述属性确定列名称,但将结果转换为字典需要额外的工作。
使用 row_factory 的解决方案
row_factory 参数允许自定义行的返回方式。通过将其设置为以游标和行作为参数并返回字典的函数,您可以获得字典而不是列表。
import sqlite3 def dict_factory(cursor, row): d = {} for idx, col in enumerate(cursor.description): d[col[0]] = row[idx] return d con = sqlite3.connect(":memory:") con.row_factory = dict_factory cur = con.cursor() cur.execute("select 1 as a") print(cur.fetchone()["a"])
使用 sqlite3.Row 的解决方案
SQLite 文档建议使用 sqlite3.Row 类型,它提供对列的高效的基于名称的访问。通过将 row_factory 设置为 sqlite3.Row,您可以按名称索引和访问列。
con = sqlite3.connect(...) con.row_factory = sqlite3.Row # add this row cursor = con.cursor()
以上是如何从 SQLite 查询中高效地检索字典而不是列表?的详细内容。更多信息请关注PHP中文网其他相关文章!