无法将CSV文件数据导入mysql表

时间:2019-11-28 12:49:32

标签: python mysql database

我正在使用下面的代码-

import mysql.connector
import csv

mydb = mysql.connector.connect(host='xxxxx', user='xxxx', passwd='xxxxxx')

cursor = mydb.cursor()
cursor.execute("SHOW DATABASES")
l = cursor.fetchall()

cursor.execute("USE DB ")

with open('details.csv','rt')as f:
    csv_data = csv.reader(f)

   for row in csv_data:
       cursor.execute ('INSERT INTO student (id,name,age,course) VALUES (%s,%s,%s,%s)',row)
cursor.close()
mydb.commit()
mydb.close()

我收到以下错误- “ ProgrammingError:SQL语句中未使用所有参数” python 3.x,windows7,Mysql 2012版本。

2 个答案:

答案 0 :(得分:0)

在这种情况下,主要问题是字符串格式。我不知道什么是row,在您的错误中它是一个列表,因此使用每个元素都可以解决问题。

for row in csv_data:
       cursor.execute ('INSERT INTO student (id,name,age,course) VALUES (%s,%s,%s,%s)',
row[0], row[1], row[2], row[3])

答案 1 :(得分:0)

for row in csv_data:
    listval = []
    for col in row:
        listval.append(col)

    cursor.execute ('INSERT INTO student (id,name,age,course) VALUES (%s,%s,%s,%s) ', listval)

这将起作用:))