我需要使用csv文件中的信息创建数据库,格式:name,house,birth
例如:
Adelaide Murton,Slytherin,1982
Adrian Pucey,Slytherin,1977
然后我需要在按照以下格式拆分名称后导出到数据库:
first | middle | last | house | birth
下面是我的代码;它可以导出第一行的名字、第二行的中间名、第三行的姓氏、第四行的房子等,其他所有内容都显示为空。我的数据库中有792行,而不是40行Output image
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"])
在运行import之前,确保students表为空,否则所有尝试中的所有行(无论是否有错误)都在数据库中。创建所述输出的bug只会插入大约280行。(每1个csv行7个db行)
相关问题 更多 >
编程相关推荐