不会将csv数据存储到mysql表中?

时间:2017-07-19 22:43:34

标签: python mysql

我有一个我正在加载的csv文件,您可以在下面看到链接以及我得到的错误输出。我无法弄清楚为什么会发生这种错误。任何帮助表示赞赏。

def url_store():
        run_urlcrazy()
        url_file = open('url_csv')
        csv_reader = csv.reader(url_file)
        cursor = db.cursor()
        for row in csv_reader:
            cursor.execute("INSERT INTO scanresults(typotype,squatdomain, ip, id, domaincontact, mx, originaldomain, ipcontact) \
       VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", str(row))

    db.commit()
    cursor.close()

Error Screenshot

CSV file

1 个答案:

答案 0 :(得分:1)

查询需要8个参数(由(%s, %s, %s, %s, %s, %s, %s, %s)表示),但是您只提供一个参数,即str(row)

如果您确定row包含8个字符串值,则可以使用

cursor.execute("INSERT INTO scanresults(typotype,squatdomain, ip, id, domaincontact, mx, originaldomain, ipcontact) \
   VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", *row)

或者只是选择

cursor.execute("INSERT INTO scanresults(typotype,squatdomain, ip, id, domaincontact, mx, originaldomain, ipcontact) \
   VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", (row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7]))