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

2024-09-24 22:19:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个具有多个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中是否存在拆分上述2个数据集(在data)的方法,以便我可以通过这样做来访问这些值

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

编辑:

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


Tags: 数据testdatafailurecountissuebuglist
1条回答
网友
1楼 · 发布于 2024-09-24 22:19:53

您可以获取这些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'])

相关问题 更多 >