Помислете за динамично изграждане на заявката, за да сте сигурни, че броят на заместителите съответства на вашата таблица и CSV файлов формат. Тогава е просто въпрос да се уверите, че вашата таблица и CSV файл са правилни, вместо да проверите дали сте въвели достатъчно ?
заместители във вашия код.
Следният пример предполага
- CSV файлът съдържа имена на колони в първия ред
- Връзката вече е изградена
- Името на файла е
test.csv
- Името на таблицата е
MyTable
- Python 3
...
with open ('test.csv', 'r') as f:
reader = csv.reader(f)
columns = next(reader)
query = 'insert into MyTable({0}) values ({1})'
query = query.format(','.join(columns), ','.join('?' * len(columns)))
cursor = connection.cursor()
for data in reader:
cursor.execute(query, data)
cursor.commit()
Ако имената на колони не са включени във файла:
...
with open ('test.csv', 'r') as f:
reader = csv.reader(f)
data = next(reader)
query = 'insert into MyTable values ({0})'
query = query.format(','.join('?' * len(data)))
cursor = connection.cursor()
cursor.execute(query, data)
for data in reader:
cursor.execute(query, data)
cursor.commit()