psycopg2 如何处理 TypeError:并非所有参数都在字符串格式化期间转换 [重复]

问题描述 投票:0回答:1

我有这个代码:

ip = "127.0.0.1"
sql = "select count(*) from radacct where nasipaddress=%s"
cur.execute(sql,ip)

但是我得到一个错误像

TypeError: not all arguments converted during string formatting

如何以正确的方式将参数传递给 psycopg2?

python postgresql psycopg2
1个回答
9
投票

传递给

execute
的 sql 参数必须在元组或列表中,即使只有其中一个。这在文档中有说明:

对于位置变量绑定,第二个参数必须始终是 序列,即使它包含单个变量。记住这一点 Python 需要逗号来创建单个元素元组:

所以你需要这样做:

ip ="127.0.0.1" 
sql="select count(*) from radacct where nasipaddress=%s"
cur.execute(sql, (ip,))
© www.soinside.com 2019 - 2024. All rights reserved.