Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Scrivere un file CSV nel database di SQL Server utilizzando Python

Prendi in considerazione la creazione dinamica della query per garantire che il numero di segnaposto corrisponda al formato della tabella e del file CSV. Quindi si tratta solo di assicurarsi che la tabella e il file CSV siano corretti, invece di controllare di aver digitato abbastanza ? segnaposto nel codice.

L'esempio seguente presuppone

  1. Il file CSV contiene i nomi delle colonne nella prima riga
  2. La connessione è già stata creata
  3. Il nome del file è test.csv
  4. Il nome della tabella è MyTable
  5. Pitone 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()

Se i nomi delle colonne non sono inclusi nel file:

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