首页 > 解决方案 > 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

标签: python

解决方案


您正在遍历keys您的字典,而不是您可以遍历两者keysvalues使用items().

for key, value in data["4.3.0 Test Plan"].items():
   print(key)
   print(value['untested_count'])

输出:

Engine
4088
Management Web Console
12067

推荐阅读