Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Écrire un fichier csv dans la base de données SQL Server en utilisant python

Envisagez de créer la requête de manière dynamique pour vous assurer que le nombre d'espaces réservés correspond à votre table et au format de fichier CSV. Ensuite, il suffit de s'assurer que votre table et votre fichier CSV sont corrects, au lieu de vérifier que vous avez tapé suffisamment de ? espaces réservés dans votre code.

L'exemple suivant suppose

  1. Le fichier CSV contient les noms de colonne sur la première ligne
  2. La connexion est déjà établie
  3. Le nom du fichier est test.csv
  4. Le nom de la table est 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()

Si les noms de colonnes ne sont pas inclus dans le fichier :

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