我正在尝试使用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
有谁能请向我解释这里发生的事情以及是否有任何解决方案...... THX。
答案 0 :(得分:1)
首先,确保row
的值是多少,以及它有多少项:
print row, len(row)
然后尝试使用完整的insert sql语句:
insert into table (col1, col2, col3, ...) values (?, ?,? ...)
看看会发生什么。这应该可以解决您的问题,或者至少让您了解正在发生的事情。
答案 1 :(得分:0)
你告诉它你有6列(参数),但你只给它1个参数。这就是为什么它告诉你你错过了5列。