Psycopg2 DictCursor什么都不返回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Psycopg2 DictCursor什么都不返回相关的知识,希望对你有一定的参考价值。

我的查询是:

query = '''
    SELECT * from table
    where id IN (SELECT ext_id from table2
            where title= %s and year = %s)
'''

接下来我用

cursor = conn.cursor(cursor_factory=pg.extras.DictCursor)
cursor.execute(query, (title, year))
result = cursor.fetchall()

它返回[],即没有

但是,如果我设置cursor = conn.cursor(),相同的查询将返回一些行!出了什么问题?为什么我不能使用DictCursor?

答案

在我的代码中不要使用pg.extras.DictCursor。

相反,我使用psycopg2.extras.DictCursor

我写了以下内容:

import psycopg2
import psycopg2.extras

cursor = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)

然后我就可以使用密钥访问内容了。

试一试,让我知道。

以上是关于Psycopg2 DictCursor什么都不返回的主要内容,如果未能解决你的问题,请参考以下文章

Python支持SQL数据库返回psycopg2.ProgrammingError:在尝试删除表中的数据时,关系不存在错误?

Psycopg2 - 返回前 1000 个结果并随机选择一个

消化一个月的 Reddit 评论

在 MacOS 上安装 psycopg2 失败,错误消息不明确

MySQLdb

无法在 Amazon 上使用 dictCursor 获取数据