Я не могу заставить выполнение Python для sqlite3 работать должным образом

Я пытался использовать executemany для вставки значений в базу данных, но у меня это просто не сработало. Вот пример:

clist = []
clist.append("abc")
clist.append("def")
clist.append("ghi")
cursor.executemany("INSERT INTO myTable(data) values (?) ", clist)

Это дает мне следующую ошибку:

sqlite3.ProgrammingError: неверное количество предоставленных привязок. Текущий оператор использует 1, а предоставлено 3.

Однако, когда я меняю список, он работает нормально:

clist = ["a", "b"]
cursor.executemany("INSERT INTO myTable(data) values (?) ", clist)

Он работает, как ожидалось! Я вижу данные в базе данных. Почему первый список не работает, а второй - нет?

(PS: это всего лишь образец, а не реальный код. Я сделал небольшой тестовый пример для простоты).

14
задан brainydexter 16 March 2011 в 21:27
поделиться