本文主要是介绍Python使用sqllite3避坑--sqlite3.ProgrammingError: Incorrect number of bindings supplied错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Incorrect number of bindings supplied错误
- 错误聚焦
- 错误原因及解决
- 总结
错误聚焦
一般出现在预编译的使用中
例如:
data = [[1, 2], [3, 4]]
connection.executemany('INSERT INTO table_name VALUES (?, ?, ?, ?)', data)
这样会出现这个错误
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 4, and there are 2 supplied.
错误原因及解决
让我们先看一下官方文档的演示1
# Larger example that inserts many records at a time
purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),('2006-04-06', 'SELL', 'IBM', 500, 53.00),]
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
可以看到,官方的是变量名 = [(), (), (), ()]
这种形式,即列表里面套元组。
那么问题原因就显而易见了,我们在data
列表中虽然使用了嵌套,但没有使用元组,所以修改为以下形式即可。
data = [(1, 2, 3, 4)]
运行一下,成功写入
总结
目前在数据库连接方面还有些不太熟练,争取多练习多找错误才会提升自己
官方文档为Python官方文档,Sqllite3可以去官网文档查看 ↩︎
这篇关于Python使用sqllite3避坑--sqlite3.ProgrammingError: Incorrect number of bindings supplied错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!