首页 > 解决方案 > 搜索列表/字典时出现 KeyError

问题描述

陷入非常简单的事情......请帮我找出错误。

文件A.py

big_dict = {
    "iAmKeyA" : "iAmValueA",
    "iAmKeyB" : "iAmValueB",
    "iAmKeyC" : "iAmValueC",
    "iAmKeyD" : "iAmValueD",
    "iAmKeyE" : "iAmValueE",
    "iAmKeyF" : "iAmValueF"
}

def getValue(keyName):
    return big_dict[keyName]

主文件.py

import fileA

otherList = [["iAmKeyB", 123, 456], ["iAmKeyA", 321, 654], ["iAmKeyC", 911, 110]]

for listItem in otherList:
    print(fileA.getValue(listItem[0]))

为什么KeyError: iAmKeyB当我尝试打印 的值时会得到otherList?如果big_dict是嵌套字典,我什至会得到TypeError: 'NoneType' object is not subscriptable.

如果我在没有 for 循环的情况下尝试这个,它可以返回它的值。

print(fileA.getValue("iAmKeyB"))

我检查了返回值的类型。它们都是字符串。

标签: pythonlistdictionarytypeerrorkeyerror

解决方案


这个对我有用。

big_dict = {
    "iAmKeyA" : "iAmValueA",
    "iAmKeyB" : "iAmValueB",
    "iAmKeyC" : "iAmValueC",
    "iAmKeyD" : "iAmValueD",
    "iAmKeyE" : "iAmValueE",
    "iAmKeyF" : "iAmValueF"
}

def getValue(keyName):
    return big_dict[keyName]

otherList = [["iAmKeyB", 123, 456], ["iAmKeyA", 321, 654], ["iAmKeyC", 911, 110]]

for listItem in otherList:
    print(getValue(listItem[0]))

输出

iAmValueB
iAmValueA
iAmValueC

推荐阅读