绑定数量与提供的值不匹配错误
我正在尝试使用Python中的win32com模块将一个Excel表格转换成sqlite3数据库。我的Excel表格有6列,所以我Python代码的一部分是:
for row in exceldata:
c.execute('INSERT INTO exceltable1 VALUES(?,?,?,?,?,?)',row)
conn.commit()
但是Python给了我以下错误:
c.execute('INSERT INTO exceltable VALUES(?,?,?,?,?,?)',row)
ProgrammingError: Incorrect number of bindings supplied. The current statement uses 6, and there are 5 supplied.
如果我尝试去掉一个问号再运行,错误就变成了:
c.execute('INSERT INTO exceltable1 VALUES(?,?,?,?,?)',row)
OperationalError: table exceltable1 has 6 columns but 5 values were supplied
有没有人能告诉我这是怎么回事,以及有没有解决办法...
谢谢。
2 个回答
0
你告诉它你有6个列(参数),但实际上你只给了它1个参数。这就是为什么它会告诉你缺少5个列的原因。
1
首先,确认一下row
的值是什么,以及它里面有多少个项目:
print row, len(row)
然后试着使用完整的插入SQL语句:
insert into table (col1, col2, col3, ...) values (?, ?,? ...)
看看会发生什么。这应该能解决你的问题,或者至少让你明白发生了什么。