【问题标题】:Can't get relative password and ID from CSV file无法从 CSV 文件中获取相关密码和 ID
【发布时间】: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


【解决方案1】:

这应该可行:

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:
            # code for handling the else case

您可以通过在列名周围加上引号来访问以字符串为键的字典元素。我相信你之前已经这样做了,但没有使用DictReader。这就是您使用它访问行的方式。

【讨论】:

    猜你喜欢
    • 2022-01-07
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多