Zvažte vytvoření dotazu dynamicky, abyste zajistili, že počet zástupných symbolů bude odpovídat vaší tabulce a formátu souboru CSV. Pak už jde jen o to, abyste se ujistili, že tabulka a soubor CSV jsou správné, místo kontroly, zda jste zadali dostatek ?
zástupné symboly ve vašem kódu.
Následující příklad předpokládá
- Soubor CSV obsahuje na prvním řádku názvy sloupců
- Připojení je již vytvořeno
- Název souboru je
test.csv
- Název tabulky je
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()
Pokud v souboru nejsou zahrnuty názvy sloupců:
...
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()