gpt4 book ai didi

python - Postgres mogrify 将二进制添加到 SQL 字符串

转载 作者:行者123 更新时间:2023-11-29 13:48:08 26 4
gpt4 key购买 nike

我正在尝试使用 python 项目中的示例保存数据 dedupe .我得到的错误是在尝试将数据插入回数据库时接近尾声。

我得到的错误是:

Traceback (most recent call last):
File "dedupe_orgs.py", line 11, in <module>
main()
File "dedupe_orgs.py", line 7, in main
entity.dedupe_orgs()
File "/orgs.py", line 183, in dedupe_orgs
c2.execute("INSERT INTO entity_organization %s VALUES %s" % (values, args_str))
psycopg2.ProgrammingError: syntax error at or near "b"
LINE 1: ...d,id,name,created_on,updated_on,entity_id) VALUES b"(0,65,'S...

这是相关代码:

num_cols = len(column_names)
mog = "(" + ("%s," * (num_cols - 1)) + "%s)"
args_str = ','.join(c2.mogrify(mog, x) for x in full_data)
values = "(" + ','.join(x for x in column_names) + ")"
c2.execute("INSERT INTO entity_organization %s VALUES %s" % (values, args_str))
con2.commit()
con2.close()
con.close()

我认为问题在于该示例是用 Python 2 编写的,但我使用的是 Python 3。我该如何解决错误,以便不会将“b”添加到每个查询中,从而阻止数据保存?

最佳答案

我猜 args_str 实际上不是字符串类型。您是否正在使用像 pycharm 这样的合适的调试器?如果是这样,您能否在尝试插入之前检查该变量以确认它是一个字符串?

关于python - Postgres mogrify 将二进制添加到 SQL 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45113361/

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