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

2024-10-01 09:17:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python中的win32com模块将excel表转换为sqlite3db。我的excel表有6列,因此python代码的一部分是:

for row in exceldata:
      c.execute('INSERT INTO exceltable1 VALUES(?,?,?,?,?,?)',row)
conn.commit()

但是python给出了以下错误:

^{pr2}$

如果我尝试删除一个问号并再次运行它,错误现在变成:

c.execute('INSERT INTO exceltable1 VALUES(?,?,?,?,?)',row)
OperationalError: table exceltable1 has 6 columns but 5 values were supplied

有谁能给我解释一下这里发生了什么事,是否有任何解决办法…
谢谢。在


Tags: 模块代码inforexecute错误excelwin32com
2条回答

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

 print row, len(row)

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

^{pr2}$

看看会发生什么。这应该能解决你的问题,或者至少让你明白发生了什么。在

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

相关问题 更多 >