Writing a csv file into SQL Server database using python

后端 未结 5 2057
一向
一向 2020-12-01 00:22

Hi I am trying to write a csv file into a table in SQL Server database using python. I am facing errors when I pass the parameters , but I don\'t face any error when I do it

5条回答
  •  暖寄归人
    2020-12-01 00:58

    Consider building the query dynamically to ensure the number of placeholders matches your table and CSV file format. Then it's just a matter of ensuring your table and CSV file are correct, instead of checking that you typed enough ? placeholders in your code.

    The following example assumes

    1. CSV file contains column names in the first line
    2. Connection is already built
    3. File name is test.csv
    4. Table name 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()
    

    If column names are not included in the 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()
    

提交回复
热议问题