Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python将数据从csv导入数据库_Python_Sql_Cs50 - Fatal编程技术网

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

使用Python将数据从csv导入数据库,python,sql,cs50,Python,Sql,Cs50,我需要使用csv文件中的信息创建数据库,格式: 姓名、房子、出生 例如: 然后我需要在按照以下格式拆分名称后导出到数据库: first | middle | last | house | birth 下面是我的代码;它可以导出第一行的名字、第二行的中间名、第三行的姓氏、第四行的房子等,其他所有内容都显示为空。我的数据库中有792行,而不是40行 在运行import之前,确保students表为空,否则所有尝试中的所有行(无论是否有错误)都在数据库中。创建所述输出的bug只会插入大约280行。(每

我需要使用csv文件中的信息创建数据库,格式:
姓名、房子、出生
例如:

然后我需要在按照以下格式拆分名称后导出到数据库:
first | middle | last | house | birth

下面是我的代码;它可以导出第一行的名字、第二行的中间名、第三行的姓氏、第四行的房子等,其他所有内容都显示为空。我的数据库中有792行,而不是40行


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

您可以编辑您的问题以显示您的输出是什么样子吗?您是否尝试过进行一些调试?循环中
x
的值是您期望的值吗?我添加了输出图像;是的,我做了调试,
row
x
的值就是它们应该的值。你有40次循环迭代吗?是的,就是这样,在我清空它之后,它工作了。非常感谢。
Adelaide Murton,Slytherin,1982  
Adrian Pucey,Slytherin,1977
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"])