我有一个具有多个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个单独的字典或对其进行格式化时,我试图从该变量中提取数据,以便能够从中获取值。
答案 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'])