python-3.x - 尝试通过 python 脚本在 postgresql 中插入行时出现 "I"处或附近的语法错误

标签 python-3.x postgresql

尝试通过 python 代码将查询插入到 postgres 表中。

代码行:

query = f"INSERT INTO Phone (data, result, reason) VALUES ('{json.dumps(data)}', {val}, '{json.dumps(reason)}') RETURNING id;"

此处,datareasonjson 类型的列,resultbool列。

打印变量的查询:

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/

相关文章:

python - python3 可变属性是否共享?

python - 用重复行替换原始行,然后删除重复行

java - 如何使用 Hibernate 将 Java 对象映射到 H2 中的 clob 和 Postgres 中的 json

ruby-on-rails - 在更改我的开发数据库之前我应该​​知道什么?

python - 尝试使用 BeautifulSoup 从没有 API 的站点获取数据

python - 如何将列表拆分为元组

python-3.x - Python 3 Wx 更改托盘图标

java - Corda 节点数据库未知属性 'schema'

javascript - sails.js 中使用不同数据类型的“或”查询

Postgresql 查询速度非常慢,使用::date、::time 和 interval