如何从 SQLite 查询中检索字典
在执行 SQLite 查询时,你可能会遇到需要以字典格式获取数据的情况列表。本文将为您提供几种解决方案来实现此目的。
使用 row_factory
SQLite 连接中的 row_factory 参数允许您指定如何返回行。通过将其设置为自定义函数,您可以将元组转换为字典:
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"]) # Output: 1
使用 sqlite3.Row
或者,您可以将 row_factory 设置为 sqlite3.Row ,它提供了一种通过索引和访问列的优化方法name:
con = sqlite3.connect(...) con.row_factory = sqlite3.Row # Set row_factory to sqlite3.Row cursor = con.cursor() row = cursor.fetchone() print(row["col1"]) # Access columns by name
自定义实现
如果上述解决方案都不能满足您的需求,您可以创建自己的自定义实现。但是,由于与提供的解决方案相比存在潜在的性能问题,通常不建议使用这种方法。
以上是如何从 SQLite 查询中检索字典数据?的详细内容。更多信息请关注PHP中文网其他相关文章!