从具有多个json根的数据集中获取

时间:2019-04-16 15:18:40

标签: 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_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":[

      ]
   }
}

在此示例中,我仅使用了2个相同的数据集,尽管实际上其中3个具有相同的键和类别,只是值不同

我要完成的工作是为每个数据集的每个类别获取'passed_count'的值。

无论如何,python中是否有上面的两个数据集(在data中),所以我可以通过执行以下操作来访问值

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

编辑:

为澄清起见,data变量是在for循环内创建的。因此,当我print(data)返回3个字典时(因此有多个词根)。当我应该将此变量拆分为3个单独的字典或对其进行格式化时,我试图从该变量中提取数据,以便能够从中获取值。

1 个答案:

答案 0 :(得分:1)

您可以抓住那些keys,然后将索引位置用作“ data1”,“ data2”等,以遍历那些位置:

注意:

我不得不稍微修改data以适合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'])