sql >> Database >  >> RDS >> Sqlserver

Een csv-bestand naar de SQL Server-database schrijven met python

Overweeg om de query dynamisch op te bouwen om ervoor te zorgen dat het aantal tijdelijke aanduidingen overeenkomt met uw tabel- en CSV-bestandsindeling. Dan is het gewoon een kwestie van ervoor zorgen dat je tabel en CSV-bestand correct zijn, in plaats van te controleren of je genoeg hebt getypt ? tijdelijke aanduidingen in uw code.

In het volgende voorbeeld wordt ervan uitgegaan dat

  1. CSV-bestand bevat kolomnamen in de eerste regel
  2. Verbinding is al gemaakt
  3. Bestandsnaam is test.csv
  4. Tafelnaam is 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()

Als kolomnamen niet in het bestand zijn opgenomen:

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


  1. Hoe invoegen in dezelfde tabel in MySQL?

  2. Herhaal een string meerdere keren in MySQL - REPEAT()

  3. De database-e-mailwachtrij stoppen/starten in SQL Server (T-SQL)

  4. Willekeurig getal genereren in elke rij in Oracle Query