【发布时间】:2019-04-30 03:32:22
【问题描述】:
我正在尝试获取一个 csv 文件并使用 Python 将其导入 sql server express。我用谷歌搜索了这个问题,我看到的似乎对其他人都有效的解决方案是:
import pymssql
import csv
conn = pymssql.connect(
server="servername",
user='username',
password='password',
database='db'
)
cursor = conn.cursor()
with open('new_csv_file.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 = conn.cursor()
for data in reader:
values = map((lambda x: x.strip()), data) # No need for the quote
print(tuple(values))
cursor.execute(query, tuple(values))
cursor.commit()
conn.commit()
cursor.close()
print("Done")
conn.close()
我已确认代码有效,只是“execute()”部分无效。 查询没问题,但“值”给了我以下错误:
(102, b"Incorrect syntax near 'Year'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")
“年份”是我要在其中放入数据的列。
谢谢。
【问题讨论】:
-
可以在执行之前打印
query吗?