python - 使用 .format() 时出现 psycopg2 编程错误

标签 python postgresql python-3.5 psycopg2 string.format

我不确定这里到底发生了什么,但它可能与 python 中的格式有关。 运行此命令会导致错误。

x = '00000201000012EB'
sql = """ SELECT * FROM table WHERE id = {} """.format(x)
conn.execute(sql)

我收到一条错误消息:“EB”附近有语法错误

但是当我运行这样的命令时:

sql = """ SELECT * FROM table WHERE id = '00000201000012EB' """
conn.execute(sql)

效果很好。

我格式化这个sql语句的方式有问题吗?

最佳答案

使用变量作为execute()的参数:

cur.execute(""" SELECT * FROM my_table WHERE id = %s """, (x,))

如果您决定使用 format(),则应在占位符周围添加单引号:

sql = """ SELECT * FROM my_table WHERE id = '{}' """.format(x)

关于python - 使用 .format() 时出现 psycopg2 编程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447041/

相关文章:

python - 将 DICOM 转换为 TIFF

python - 排除字典中的文件

python - 如何在 SQLAlchemy(python,flask)中为模型用户自身创建多对多关系

python - 格式化 django admin 中呈现的内联多对多相关模型

postgresql - Postgres 中的长度和精度问题

linux - 安装露天社区版时 initdb 出现权限被拒绝错误

java - 在activiti源代码中更新postgres数据库属性

Django 限制/允许来自 ldap 的组访问

python 3.5 asyncio 解释器如何处理 'suspended' 协程

python - 按列表顺序从文件返回行