python - 搜索列表/字典时出现 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"))
我检查了返回值的类型。它们都是字符串。
解决方案
这个对我有用。
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
推荐阅读
- ios - 上次 pod 更新后项目未构建
- laravel - Laravel 模型解析数组
- powershell - 使用 PowerShell 解析 MDT 日志
- ajax - MVC Core:通过 Ajax 请求上传文件并返回 JSON 对象而不重定向
- visual-studio - “更新数据库中的模型”在 .edmx 文件菜单中不可用?
- python - Pymnet - 创建多层网络可视化
- javascript - Javascript - 对象不支持 document.createEvent
- php - PHP 中 isset() 函数背后的逻辑是什么?
- r - 如何使用R中的ucminf包在超级计算机上成功调用C代码
- android - ClassNotFoundException:在 Android 9 上找不到类 SchemeRegistry