Форум сайта python.su
Есть пять файлов txt из которых я пытаюсь импортировать данные в БД. Написал скриптик:
import sqlite3
con = sqlite3.connect(“mail_py.db”)
cur = con.cursor()
e =
for i in e :
file = open(i)
rows =
for rec in rows:
cur.execute('insert into mail_ru values (?, ?)', rec)
con.commit()
cur.close()
con.close()
input()
Вылезает такая ошибка: Traceback (most recent call last):
File “C:\Python34\new\mail_sql1.py”, line 10, in <module>
cur.execute('insert into mail_ru values (?, ?)', rec)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 2, and there are 3 supplied.
Если сократить строку e = , то все работает, а больше файлов не дает добавить. Как быть?
Офлайн
Выяснил, что проблема не в количестве файлов, а в нутри их. В первых двух файлов всего два поля, а в третьем видимо три, на это и ругается. Как сделать чтоб он заполнял по факту, толлько два поля, а третье игнорировал?
Офлайн
Babai84Оборачивайте код в теги, а то сейчас видно какие-то нечитаемые ошметки. А по вопросу, ну срез возьмите:
cur.execute('insert into mail_ru values (?, ?)', rec)
cur.execute('insert into mail_ru values (?, ?)', rec[:2])
Офлайн
Простите новичка, про теги учту. И спасибо за помщь. все получилось
Офлайн