我是一個非常新的編碼,我卡住了。我正在通過api提供一個.csv文件的報告。我想將其粘貼到SQL數據庫中,但遇到了一些麻煩。Escape使用python從python寫入SQL的列名,pyodbc從csv
我當前的代碼如下所示:
閱讀器解碼後的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 Driver 13 for SQL Server][SQL Server]Incorrect syntax near the keyword 'Group'. (156) (SQLExecDirectW)")
我認爲這個問題是我的欄目有:
Date | Advertiser | Campaign | Ad Group | etc.
它似乎也許SQL正在識別「廣告組」中的「組」作爲變量。
任何想法?謝謝。
這並不是說它將它識別爲一個變量 - 而是因爲列名中的空格而無法解釋它。你需要在方括號中加上一個列名稱,以便解釋它(並且總的來說,最好將所有的列名都放在方括號中) - 所以不是'insert into table(date,廣告客戶,廣告系列,廣告組)'它應該'插入到表格([日期],[廣告客戶],[廣告系列],[廣告組]) – ZLK
@ZLK非常感謝。這工作。現在看起來我的數據是以字符串形式傳遞的「轉換日期和/或字符串中的時間時轉換失敗」。是否有一個快速解決方案,以及任何機會? – Jamesdabeard
嗯,這取決於你的數據是什麼樣子。日期字段是什麼樣的? – ZLK