我的脚本运行&;我没有收到任何错误,但我的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
...>
这可能是因为您忘了在SELECT语句末尾加分号(;)
请尝试以下方法: 从学生中选择*
相关问题 更多 >
编程相关推荐