python - TypeError:尝试从字典中访问值时,字符串索引必须是整数
问题描述
我有一本像这样的字典:
data = {
"4.3.0 Test Plan":{
"Engine":{
"passed_count":0,
"blocked_count":0,
"untested_count":4088,
"failed_count":0,
"reviewed_count":0,
"test_harness_issue_count":0,
"bug_failure_count":0,
"defect_list":[
]
},
"Management Web Console":{
"passed_count":0,
"blocked_count":0,
"untested_count":12067,
"failed_count":0,
"reviewed_count":0,
"test_harness_issue_count":0,
"bug_failure_count":0,
"defect_list":[
]
}
}
}
我试图untested_count
通过这样做来访问这两个类别的价值:
for value in data["4.3.0 Test Plan"]:
print(value)
print(value['untested_count'])
但我TypeError: string indices must be integers
在这条线上收到了这个错误print(value['untested_count'])
Expected type 'Union[int, slice]', got 'str' instead
并且还在同一行从我的 python IDE 收到此错误
我很困惑为什么会这样,对于这个例子的这个错误的任何帮助和解释将不胜感激
注意:print(value)
在上面的 for 循环中,将返回:
Engine
Management Web Console
预期结果:
Engine
4088
Management Web Console
12067
解决方案
您正在遍历keys
您的字典,而不是您可以遍历两者keys
并values
使用items()
.
for key, value in data["4.3.0 Test Plan"].items():
print(key)
print(value['untested_count'])
输出:
Engine
4088
Management Web Console
12067