.csv dateien einlesen, SQL insert statement erzeugen als Datei.sql

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dark_universe
User
Beiträge: 7
Registriert: Dienstag 20. März 2018, 12:08

Hallo, folgendes Problem: Ich habe verschiedene . CSV dateien, die alle gleich aufgebaut sind aber verschiedene Anzahl von Zeilen haben:

Datei1.csv:
ABABCDEQWERT00038,204339000001456,20180130211930,0,4
ABABCDEQWERT00038,204339000001456,20180131103422,0,4
ABABCDEQWERT00038,204339000001456,20180131032004,0,4
ABABCDEQWERT00038,204339000001456,20180131052015,844,4
ABABCDEQWERT00038,204339000001456,20180131113428,0,4
ABABCDEQWERT00038,204339000001456,20180131073407,0,4
ABABCDEQWERT00038,204339000001456,20180130181908,0,4
ABABCDEQWERT00038,204339000001456,20180130151848,0,4

Diese Datei1.csv will ich einlesen und daraus SQL inserts machen in der form:
insert into table1 values('ABABCDEQWERT00038',204339000001456,20180131052015,844,4);

Das Ergenis soll sein Datei1.sql mit den gesammten insert statements.

Das heisst für 100 .csv Dateien gibt es 100 SQL Dateien, die dann in die Oracle DB einlesen kann.

Mit dem code kann ich schonmla die .csv datei einlesen:
>>> import csv
>>> with open('ABABCDEQWERT00038.csv', newline='') as csvfile:
... CDreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
... for row in CDreader:
... print(', '.join(row))

aber wie erzeuge ich jetzt den sql code ?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@dark_universe: warum willst Du überhaupt SQL-Dateien generieren? Warum nicht gleich mit Python die Datenbank füllen? Dann übernimmt der DB-Treiber gleich das komplizierte escapen der Eingaben.

Wenn Du doch Text-Dateien erzeugen willst, hast Du schon von Stringformatierung gehört?

Bei einem INSERT sollten immer die Felder explizit angegeben werden.
Antworten