【发布时间】:2021-04-11 19:44:11
【问题描述】:
对不起,如果这不清楚,或者如果这很简单,我是一个完全的新手。 我有这个 python 代码:
identer = input("Enter your Student ID... ")
passenter = input("Enter your password... ")
with open("pupil.csv", "r") as f:
reader = csv.reader(f)
for row in reader:
if identer != row["student_id"] or passenter != row["password"]:
print("Wrong ID or Password, try again.")
else:
if identer != row["student_id"] or passenter != row["password"]: 行抛出错误:
TypeError: list indices must be integers or slices, not str
这里有我不知道的解决方案吗?这是 CSV 文件,如果有帮助的话。
forename,surname,phone_no,email,password,student_id,account_balance,module1,module2
nathan,m,099099,ddd,12345,754,100,,
reg,beg,180,regb,0987,331,100,,
g,b,334,email,911,203,100,,
编辑: 这是我的 dictreader 代码
with open("pupil.csv", "r") as f:
reader = csv.DictReader(f)
for row in reader:
if identer != row[student_id] or passenter != row[password]:
print("Wrong ID or Password, try again.")
else:
这次它抛出一个错误,说“KeyError: 754” 754 is the id
【问题讨论】:
-
你必须使用
csv.DictReader -
我仍然在该行收到 keyerror,我的语法正确吗?
-
你可以用
csv.DictReader发布你的代码 -
@naf 您可以使用新代码 minimal reproducible example 编辑问题(如我所见,您没有在 CSV 中包含标题行——或者没有?)
-
@user202729 我用 dictreader 添加了标题行和代码
标签: python csv dictionary