Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 提供的绑定数和值数错误_Python_Sqlite_Win32com - Fatal编程技术网

Python 提供的绑定数和值数错误

Python 提供的绑定数和值数错误,python,sqlite,win32com,Python,Sqlite,Win32com,我正在尝试使用python中的win32com模块将excel工作表转换为SQLite3DB。我的excel工作表有6列,因此python代码的一部分是: for row in exceldata: c.execute('INSERT INTO exceltable1 VALUES(?,?,?,?,?,?)',row) conn.commit() 但是python给了我以下错误: c.execute('INSERT INTO exceltable VALUES(?,?,?,?,?,

我正在尝试使用python中的win32com模块将excel工作表转换为SQLite3DB。我的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.

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

 print row, len(row)
然后尝试使用完整的insert sql语句:

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

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

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

非常感谢,这很有帮助。