При попытки записи csv файла в базу данных выдает ошибку pyodbc.ProgrammingError: Неправильный синтаксис около конструкции ";"

from tkinter import*
import csv
import pyodbc


def vipoln():
    conn = pyodbc.connect("DRIVER={SQL SERVER};SERVER={test}; database={test};UID={test};PWD={12345}")
    with open ('zzzz.csv', 'r') as f:
        reader = csv.reader(f)
        columns = next(reader) 
        query = 'insert into testzodaniy({0}) values ({1})'
        query = query.format(','.join(columns), ','.join('?' * len(columns)))
        cursor = conn.cursor()
        for data in reader:
            cursor.execute(query, data)
        cursor.commit()
        conn.close()
    

root=Tk()
root.title("Главное меню")
root.geometry("400x300")

vipolnit_btn=Button(root,text='выполнить',width=35,command=vipoln)
vipolnit_btn.grid(row=0,column=0,padx=10,pady=10)


root.mainloop()

При попытки записи csv файла в базу данных выдает ошибку:

cursor.execute(query, data)  
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около конструкции ";". (102) (SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось выполнить подготовку инструкций. (8180)')

Ответы (1 шт):

Автор решения: CrazyElf

Мне кажется у вас в csv файле данные разделены через ;, соответственно, попробуйте читать его так:

reader = csv.reader(f, delimiter=';')
→ Ссылка