sql >> Base de Datos >  >> RDS >> Sqlserver

Escribir un archivo csv en la base de datos de SQL Server usando python

Considere crear la consulta dinámicamente para asegurarse de que la cantidad de marcadores de posición coincida con su tabla y el formato de archivo CSV. Entonces solo es cuestión de asegurarse de que su tabla y el archivo CSV sean correctos, en lugar de verificar que haya escrito suficiente ? marcadores de posición en su código.

El siguiente ejemplo asume

  1. El archivo CSV contiene nombres de columna en la primera línea
  2. La conexión ya está construida
  3. El nombre del archivo es test.csv
  4. El nombre de la tabla es 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 los nombres de las columnas no están incluidos en el archivo:

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