csv SQL语句错误的参数不足

py49o6xq  于 2023-02-27  发布在  其他
关注(0)|答案(2)|浏览(125)

我试图导入csv文件到SQL表,但我收到这个错误“没有足够的参数为SQL语句”我认为这是在SQL查询的东西...

import mysql.connector as msql
import csv

conn = msql.connect(host='localhost', user='root', password='', database='test_database')
my_cursor = conn.cursor()

csv_data = csv.reader(open('lycee.csv'))
header = next(csv_data)

print('Importing the CSV Files')
 for row in csv_data:
    print(row)
    my_cursor.execute("INSERT INTO lycee(date,etudiant,universite,age) 
      VALUES(%d,%s,%s,%d)", row)
conn.commit()
lf5gs5x2

lf5gs5x21#

假定lycee.csv有4列
当你这样做

my_cursor.execute("INSERT INTO lycee(date,etudiant,universite,age) 
    VALUES(%d,%s,%s,%d)", row)

你实际上传递了一个数组参数,但是应该是4个。你需要做的就是打开你的数组

my_cursor.execute("INSERT INTO lycee(date,etudiant,universite,age) 
  VALUES(%d,%s,%s,%d)", *row)
hlswsv35

hlswsv352#

my_cursor.execute("INSERT INTO lycee(date,etudiant,universite,age) 
  VALUES(%d,%s,%s,%d)", row)

Row在这里是一个列表或字典。您要求提供4个参数,但只提供了1个参数来放置它们。
Row将是这样的:

[2020-01-01,me,universityname,32]

比如:

row[0]

可以提供日期,假设csv.reader的输出是一个列表的列表。对其他值也做同样的操作。

相关问题