gpt4 book ai didi

python - 使用 python,pyodbc 从 csv 转义写入 SQL 的列名

转载 作者:太空宇宙 更新时间:2023-11-04 00:30:39 26 4
gpt4 key购买 nike

我是编码的新手,被困住了。我正在通过一个 api 提取报告,它给我一个 .csv 文件。我想将其粘贴到 SQL 数据库中,但遇到了一些麻烦。

我当前的代码如下所示:

reader是解码后的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 正在将“广告组”的“组”识别为变量。

有什么想法吗?谢谢。

最佳答案

正如@ZLK 在评论中提到的,您需要将列名称括在方括号中。这将达到目的:

query = query.format('[{0}]'.format('], ['.join(columns)),','.join('?'*len(columns)))

关于python - 使用 python,pyodbc 从 csv 转义写入 SQL 的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949581/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com