我的问题是:

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)

然后我可以使用密钥访问内容。
试试让我知道。

关于postgresql - Psycopg2 DictCursor不返回任何内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48884767/

10-09 07:20