Python 从具有多个json根的数据集抓取

Python 从具有多个json根的数据集抓取,python,json,Python,Json,我有一个具有多个JSON根的数据集,并尝试访问每个JSON对象的每个类别的值 因此,我拥有的数据集来自: data = { "Engine":{ "passed_count":1, "blocked_count":0, "untested_count":4088, "failed_count":0, "reviewed_count":0, "test_harness_issue_count":0, "bug

我有一个具有多个JSON根的数据集,并尝试访问每个JSON对象的每个类别的值

因此,我拥有的数据集来自:

data = {
   "Engine":{
      "passed_count":1,
      "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":[

      ]
   }
}
{
   "Engine":{
      "passed_count":3,
      "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":[

      ]
   }
}
在本例中,我只使用了两个相同的数据集,尽管实际上其中的三个数据集具有相同的键和类别,只是值不同

我试图实现的是为每个数据集的每个类别获取“passed_count”的值

python中是否存在拆分上述两个数据集(在
数据中)的方法,以便我可以通过执行类似操作来访问这些值

 for value in data1:
        print(value['passed_count'])
        ## 1
        ## 0
 for value in data2:
        print(value['passed_count']
        ## 3
        ## 0
编辑:


为了澄清起见,
数据
变量是在For循环中创建的。因此,当i
print(data)
时,它返回3个字典(因此是多个根)。我试图从这个变量中提取数据,而我应该将这个变量拆分成3个单独的字典,或者格式化它们,以便能够从中获取值

您可以抓取这些
键,然后只需使用索引位置作为“data1”、“data2”等,就可以遍历这些键:

注意:

我不得不稍微修改
数据
,以适应json格式

data = [
        {"Engine":{
      "passed_count":1,
      "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":[]
   }
},
{"Engine":{
      "passed_count":3,
      "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":[]
   }
}
   ]



data_keys = list(data[0].keys())

# data1, which is represented as key from index 0
for value in data:
    print (value[data_keys[0]]['passed_count'])


# data2, which is represented as key from index 1
for value in data:
    print (value[data_keys[1]]['passed_count'])

上面显示的
数据
不是有效的json格式。你能修好吗?啊。好啊我懂了。但它总是以相同的“形式”存在吗?如果是,你可以简单地把它作为一个字符串读入,做一点字符串操作,然后使用它,那么json文件的每个根是否都在单独的行上?我也假设你是从文本或json文件读入的?我想我需要查看您获得的数据源,以便找出如何将其转换为python,然后解析itok。在你的
for循环
中,将每个
数据
附加到一个列表中,这样你就有了这些元素的列表。我知道这是如何工作的,但不知道如何获取我的
数据
变量,并使其采用你必须能够获取这些值的格式。我认为你必须“构造”这是因为你正在循环,使设置。