[英]Importing data from CSV to MySQL using python
我目前正在做一个学校项目,我正在尝试使用 python 将数据从 CSV 文件导入到 MySQL。到目前为止,这是我的代码:
import mysql.connector
import csv
mydb = mysql.connector.connect(host='127.0.0.1', user='root', password='abc123!', db='jd_university')
cursor = mydb.cursor()
with open('C:/Users/xxxxxx/Downloads/Students.csv') as csvfile:
reader = csv.DictReader(csvfile, delimiter=',')
for row in reader:
cursor.execute('INSERT INTO Student (First_Name, Last_Name, DOB, Username, Password, Phone_nr,'
'Email, StreetName_nr, ZIP) '
'VALUES("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")',
row)
mydb.commit()
cursor.close()
当我运行这个时,我得到这个错误:“mysql.connector.errors.DataError:1292 (22007):不正确的日期值:第 1 行的‘DOB’列的‘%s’”
CSV文件中使用的日期格式是yyyy-mm-dd
关于此的任何提示都会有很大帮助!
%s
占位符。DictReader
,因此您需要row
表达式中命名列(或者不使用 DictReader 并希望顺序正确,我不会这样做)。试试这个:
import mysql.connector
import csv
mydb = mysql.connector.connect(
host="127.0.0.1", user="root", password="abc123!", db="jd_university"
)
cursor = mydb.cursor()
with open("C:/Users/xxxxxx/Downloads/Students.csv") as csvfile:
reader = csv.DictReader(csvfile, delimiter=",")
for row in reader:
values = [
row["First_Name"],
row["Last_Name"],
row["DOB"],
row["Username"],
row["Password"],
row["Phone_nr"],
row["Email"],
row["StreetName_nr"],
row["ZIP"],
]
cursor.execute(
"INSERT INTO Student (First_Name, Last_Name, DOB, Username, Password, Phone_nr,"
"Email, StreetName_nr, ZIP) "
"VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
values,
)
mydb.commit()
cursor.close()
验证数据文件和数据库列中 DOB 字段的数据类型。 可能是数据问题或表定义问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.