当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sqlite3.Connection.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"])

con.close()

如果返回元组还不够,并且您希望基于名称访问列,则应考虑将 row_factory 设置为 highly-optimized sqlite3.Row 类型。 Row 提供对列的基于索引和不区分大小写的基于名称的访问,几乎没有内存开销。它可能比您自己的基于字典的自定义方法甚至基于db_row 的解决方案更好。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 sqlite3.Connection.row_factory。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。