我在 Python 中不断收到 KeyError

问题描述 投票:0回答:2

我不断收到 KeyError 并且不确定我在这里做错了什么??

    import csv
    
    list_of_email_addresses = []
    with open("users.csv", newline="") as users_csv:
      user_reader = csv.DictReader(users_csv)
      for row in user_reader:
        list_of_email_addresses.append(row["Email"])
python csv dictionary
2个回答
4
投票

键错误意味着您尝试访问的字典没有您用来从中获取值的键。您似乎正在尝试访问行字典的“电子邮件”键。您的 csv 文件的某些行中没有“电子邮件”列,因此会出现此错误。要解决这个问题,您可以执行 row.get("Email","") ,如果没有电子邮件,它只会返回一个空字符串。

您也可以在追加之前进行检查,这样就不会通过执行以下操作将空项目添加到列表中

  for row in user_reader:
    email = row.get("Email")
    if email is None: continue
    list_of_email_addresses.append(email)

2
投票

在Python中,你可以像这样访问字典。

myDict = {1: "foo", 2: "bar"}
print(myDict[1], myDict[2])
>>> foo, bar

我想您的 CSV 文件没有您尝试访问的列作为密钥,这就是引发 KeyError 的原因。

© www.soinside.com 2019 - 2024. All rights reserved.