Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Escrevendo um arquivo csv no banco de dados SQL Server usando python


Considere criar a consulta dinamicamente para garantir que o número de espaços reservados corresponda à tabela e ao formato de arquivo CSV. Em seguida, é apenas uma questão de garantir que sua tabela e arquivo CSV estejam corretos, em vez de verificar se você digitou o suficiente ? espaços reservados em seu código.

O exemplo a seguir assume
  1. O arquivo CSV contém nomes de colunas na primeira linha
  2. A conexão já foi criada
  3. O nome do arquivo é test.csv
  4. O nome da tabela é 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()

Se os nomes das colunas não estiverem incluídos no arquivo:
...
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()