搜寻清单/字典时出现KeyError

时间:2019-12-12 07:58:41

标签: python list dictionary typeerror keyerror

遇到一些非常简单的问题……请帮助我找出错误。

fileA.py

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

def getValue(keyName):
    return big_dict[keyName]

mainFile.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"))

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

1 个答案:

答案 0 :(得分:0)

对我有用。

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