首页 > 数据库 > mysql教程 > 如何从 SQLite 查询中高效地检索字典而不是列表?

如何从 SQLite 查询中高效地检索字典而不是列表?

Mary-Kate Olsen
发布: 2025-01-04 02:18:41
原创
770 人浏览过

How Can I Efficiently Retrieve Dictionaries Instead of Lists from SQLite Queries?

从 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板