Ошибка в количестве предоставленных привязок и предоставленных значениях - PullRequest
0 голосов
/ 20 июня 2011

Я пытаюсь преобразовать таблицу Excel в базу данных sqlite3 с помощью модуля win32com в python.Мой лист 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 ]

1 голос
/ 20 июня 2011

Прежде всего, убедитесь, что значение row и сколько у него предметов:

 print row, len(row)

Затем попробуйте использовать полный оператор вставки SQL:

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

и посмотри, что получится. Это должно решить вашу проблему или, по крайней мере, дать вам понять, что происходит.

0 голосов
/ 20 июня 2011

Вы говорите, что у вас есть 6 столбцов (аргументов), но вы даете ему только 1 аргумент.Вот почему он говорит вам, что вам не хватает 5 столбца.

...