gpt4 book ai didi

python - psycopg2 executemany 不工作

转载 作者:行者123 更新时间:2023-11-29 13:02:49 50 4
gpt4 key购买 nike

如果我跑

cur.execute('SELECT * FROM some_table WHERE some_column = %s;', ('some_value',))

然后立即调用 cur.fetchall() 成功,并生成与我在 psql 中运行以下命令时得到的结果完全一致的输出:

some_db=> SELECT * FROM some_table WHERE some_column = 'some_value';

但是如果我跑

cur.executemany('SELECT * FROM some_table WHERE some_column = %s;',
[('some_value',)])

...这应该基本上等同于之前的cur.execute(...)语句,随后调用cur.fetchall() 引发异常:

ProgrammingError: no results to fetch

如果在调用 executemany 时作为第二个参数传递的序列有多个条目,我会得到相同的异常:

cur.executemany('SELECT * FROM some_table WHERE some_column = %s;',
[('some_value',), ('some_other_value',)])

...或者如果我使用 pyformat 样式来传递参数

cur.executemany('SELECT * FROM some_table WHERE some_column = %(v)s;',
[{'v': 'some_value'}, {'v': 'some_other_value'}])

我的代码有什么问题?

顺便说一句,我知道这个earlier question ,但那里的答案没有帮助。

最佳答案

executemany 专门丢弃可能返回的任何结果集,因此这就是您获得异常的原因。

更多信息: http://initd.org/psycopg/docs/cursor.html#cursor.executemany

关于python - psycopg2 executemany 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24472189/

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