尝试通过 python 代码将查询插入到 postgres 表中。
代码行:
query = f"INSERT INTO Phone (data, result, reason) VALUES ('{json.dumps(data)}', {val}, '{json.dumps(reason)}') RETURNING id;"
此处,data
和 reason
是 json
类型的列,result
是 bool
列。
打印变量的查询:
INSERT INTO Phone (data, result, reason) VALUES ('{'ICl': False, 'Poster': True, 'Lock': True, 'Model': 'ABC'}', True, '{}') RETURNING id;
错误:
syntax error at or near "I"
LINE 1: I
^
复制粘贴到表中的相同查询加上直接给我没有错误并且行被插入。
哪里出错了?似乎无法理解为什么查询给我这样的错误,而且只在 Python 代码中。请帮忙。
最佳答案
您需要让 psycopg2
为您处理引用。
请尝试这个:
query = """INSERT INTO Phone (data, result, reason)
VALUES (%s,%s,%s) RETURNING id;"""
cursor.execute(query, (json.dumps(data), val, json.dumps(reason),))
关于python-3.x - 尝试通过 python 脚本在 postgresql 中插入行时出现 "I"处或附近的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61877030/