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

20jt8wwn  于 2023-04-04  发布在  Python
关注(0)|答案(1)|浏览(157)

此问题在此处已有答案

Why do I get "TypeError: not all arguments converted during string formatting" when trying to use a string in a parameterized SQL query?(8个答案)
4小时前关门了。
我有这个代码:

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?

deyfvvtc

deyfvvtc1#

传递给execute的sql参数必须在元组或列表中,即使只有其中一个。这在文档中有说明:
对于位置变量绑定,第二个参数必须始终是一个序列,即使它包含一个变量。记住,Python需要一个逗号来创建一个单个元素元组:
所以你需要这样做:

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

相关问题