使用python将数据从csv导入数据库

qxsslcnc  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(306)

我需要使用csv文件中的信息创建一个数据库,格式: name,house,birth 例子:

Adelaide Murton,Slytherin,1982  
Adrian Pucey,Slytherin,1977

然后我需要在按以下格式拆分名称后导出到数据库: first | middle | last | house | birth 下面是我的代码;它只导出第一行的名字、第二行的中间名、第三行的姓氏、第四行的房子等等,其他的都显示为空。我的数据库中只有792行而不是40行。输出图像

import csv
import sys
import cs50

db = cs50.SQL("sqlite:///students.db")

if len(sys.argv) != 2:
        sys.exit("Usage: import.py file.csv")

with open(sys.argv[1],'r') as f:
    reader = csv.DictReader(f)
    for row in reader:
        x = row["name"].split()
        db.execute("INSERT INTO students (first, middle, last, house, birth) VALUES (?,?,?,?,?)", x[0], x[1] if len(x)==3 else None, x[2] if len(x)==3 else x[1], row["house"], row["birth"])
rekjcdws

rekjcdws1#

在运行import之前,确保students表为空,否则所有尝试的所有行(无论是否有错误)都在数据库中。创建所描述的输出的bug只会插入大约280行(每1行7 db)

相关问题