Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Schreiben einer CSV-Datei in die SQL Server-Datenbank mit Python

Erwägen Sie, die Abfrage dynamisch zu erstellen, um sicherzustellen, dass die Anzahl der Platzhalter mit Ihrem Tabellen- und CSV-Dateiformat übereinstimmt. Dann müssen Sie nur sicherstellen, dass Ihre Tabelle und CSV-Datei korrekt sind, anstatt zu überprüfen, ob Sie genug ? eingegeben haben Platzhalter in Ihrem Code.

Das folgende Beispiel geht von

aus
  1. CSV-Datei enthält Spaltennamen in der ersten Zeile
  2. Verbindung ist bereits aufgebaut
  3. Dateiname ist test.csv
  4. Tabellenname ist MyTable
  5. 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()

Wenn Spaltennamen nicht in der Datei enthalten sind:

...
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()