CS50 pset7房屋进口.py prolem

2024-05-08 22:44:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我的脚本运行&;我没有收到任何错误,但我的students.db始终为空。 用于调试的打印命令似乎都打印csv的内容。 我想它可能是插入的,但我找不到它的问题。 下面是我的代码,以及我在尝试通过CS50IDE查看DB时看到的内容。 提前感谢您的帮助

import cs50
import csv
from sys import argv, exit

#if len(argv) != 2:
#    print("Usage: python import.py characters.csv")
#    exit(1)

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


# iterate through the csv file
with open("characters.csv", "r") as file:
    reader = csv.DictReader(file)
    for row in reader:
        middle = ""
        names = row["name"].split()

        firstname = names[0]
        if len(names) == 2:
            middle = ""
            lastname = names[1]
        else:
            middle = names[1]
            lastname = names[2]

        house = row["house"]
        birth = row["birth"]

        print(firstname)
        print(middle)
        print(lastname)
        print(row["house"])
        print(row["birth"])

        db.execute("INSERT INTO students (first, middle, last, house, birth) VALUES(?, ?, ?, ?, ?)", firstname, middle, lastname, house, birth)

试图在IDE中查看数据库

~/pset7/houses/ $ sqlite3 students.db
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> .schema
CREATE TABLE students (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    first VARCHAR(255),
    middle VARCHAR(255),
    last VARCHAR(255),
    house VARCHAR(10),
    birth INTEGER
);
CREATE TABLE sqlite_sequence(name,seq);
sqlite> select * from students
   ...> 

Tags: csvimportmiddledbsqlitenamesfirstnamefile