psycopg2 如何处理 TypeError: not all arguments converted during string formatting 错误

3

我有这段代码:

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?


1个回答

9
您传递给execute的SQL参数必须是元组或列表,即使只有一个参数也是如此。这在文档中已经说明:

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

因此,您需要像这样执行:
ip ="127.0.0.1" 
sql="select count(*) from radacct where nasipaddress=%s"
cur.execute(sql, (ip,))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接