我似乎无法使此代码正常工作。这是一个相对较小的csv文件。终端以一条错误响应,指出sql语法存在问题。我认为一个问题可能是Mac默认使用数字。我只想将此文件加载到具有两列和所有相应数据的sql中。数据库和表已经用SQL创建。
import pymysql
import csv
import time
with open('code1.csv') as file:
reader = csv.reader(file, delimiter=',')
conn = pymysql.connect(host='', port=, user='', passwd='', db='', autocommit=True)
cur = conn.cursor(pymysql.cursors.DictCursor)
line = 0
for row in reader:
if line == 0:
line +=1
else:
sql = "INSERT INTO name_project('Code', 'Definition')VALUES(%s,%s);"
cur.execute(sql, (row[0], (str(row[1]))))
cur.close()
conn.close()
答案 0 :(得分:0)
如果您要这样做,则会出现1或2个语法错误:
'Code',
'Definition' may ought to be
[代码],[定义] or just plain
代码,定义`此外,您可能要考虑使用pandas
使用.read_csv
作为DataFrame
读取整个csv文件,然后使用.to_sql
写入数据库。
答案 1 :(得分:0)
首先,在这种情况下,一般建议是检查您要传递的查询是什么,即打印查询,检查其语法是否与sql查询匹配(您会惊讶于我们忽略了很多内容)。
接下来,在相关的sql服务器中运行此sql查询,这也可能有助于过滤错误。稍后查找语法错误。