使用Mac将Python导入CSV到SQL

时间:2018-12-13 00:53:44

标签: python sql

我似乎无法使此代码正常工作。这是一个相对较小的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()

2 个答案:

答案 0 :(得分:0)

如果您要这样做,则会出现1或2个语法错误:

  1. “ VALUES”前缺少空格
  2. 除非您使用方言,例如Postgres,'Code', 'Definition' may ought to be [代码],[定义] or just plain 代码,定义`

此外,您可能要考虑使用pandas使用.read_csv作为DataFrame读取整个csv文件,然后使用.to_sql写入数据库。

答案 1 :(得分:0)

首先,在这种情况下,一般建议是检查您要传递的查询是什么,即打印查询,检查其语法是否与sql查询匹配(您会惊讶于我们忽略了很多内容)。

接下来,在相关的sql服务器中运行此sql查询,这也可能有助于过滤错误。稍后查找语法错误。