提供的绑定数和提供的值出错

时间:2011-06-20 11:58:56

标签: python sqlite win32com

我正在尝试使用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。

2 个答案:

答案 0 :(得分:1)

首先,确保row的值是多少,以及它有多少项:

 print row, len(row)

然后尝试使用完整的insert sql语句:

 insert into table (col1, col2, col3, ...) values (?, ?,? ...)

看看会发生什么。这应该可以解决您的问题,或者至少让您了解正在发生的事情。

答案 1 :(得分:0)

你告诉它你有6列(参数),但你只给它1个参数。这就是为什么它告诉你你错过了5列。