Escape-имена столбцов, записывающие в SQL с помощью python,pyodbc из csv

Я довольно новичок в кодировании и застрял. Я тяну отчет через API, который дает мне файл.csv. Я хочу вставить это в базу данных SQL, но у меня возникли проблемы.

Мой текущий код выглядит так:

ридер - это декодированный CSV-файл.

columns = next(reader,None)
query = "INSERT INTO table({0}) VALUES ({1})"
query = query.format(','.join(columns),','.join('?'*len(columns)))
cursor = cnxn.cursor()
cursor.execute(query, columns)
for data in reader:
    cursor.execute(query, data)
cursor.commit() 

Когда я запускаю код, я получаю эту ошибку:

pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft] [Драйвер ODBC 13 для SQL Server][SQL Server] Неверный синтаксис рядом с ключевым словом" Группа ". (156) (SQLExecDirectW)")

Я думаю, что проблема в том, что мои столбцы:

Date |  Advertiser |    Campaign |  Ad Group | etc.

И кажется, что, возможно, SQL распознает "Группу" "Группы объявлений" как переменную.

Есть идеи? Спасибо.

1 ответ

Как уже упоминалось в комментарии @ZLK, вам необходимо заключить имена столбцов в квадратные скобки. Это сделает свое дело:

query = query.format('[{0}]'.format('], ['.join(columns)),','.join('?'*len(columns)))
Другие вопросы по тегам