gpt4 book ai didi

python - DictCursor 与 RealDictCursor

转载 作者:太空狗 更新时间:2023-10-29 21:51:58 25 4
gpt4 key购买 nike

AFAIU 和文档中,RealDictCursor 是一个专门的 DictCursor,它允许仅从键(又名列名)访问列,而 DictCursor允许从键或索引号访问数据。
我想知道如果 DictCursor 提供更多灵 active ,为什么要实现 RealDictCursor?它在性能方面(或内存方面)是否如此不同(我想有利于 RealDictCursor...)?
换句话说,什么是 RealDictCursor 用例与 DictCursor

最佳答案

真正的字典游标的主要优点是可以轻松获得 json 格式的查询输出。

比较:

with psycopg2.connect('dbname=test') as connection:
with connection.cursor(cursor_factory=RealDictCursor) as cursor:
cursor.execute("select * from my_table")
print(json.dumps(cursor.fetchall()))

对比

with psycopg2.connect('dbname=test') as connection:
with connection.cursor() as cursor:
cursor.execute("select * from my_table")
columns = [desc[0] for desc in cursor.description]
real_dict = [dict(zip(columns, row)) for row in cursor.fetchall()]
print(json.dumps(real_dict))

就性能而言,这些选项之间没有重要区别。

对于常规或类似字典的游标,您无法使用 json.dumps(cursor.fetchall()) 获得预期的 json,需要进行上述转换。另一方面,真正的字典游标会产生更大的结果,因此如果您确实不需要它,则不应使用它。

关于python - DictCursor 与 RealDictCursor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45399347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com