在python中使用嵌套for循环解析JSON

时间:2017-09-27 22:13:03

标签: python json

我在python中解析一个巨大的JSON,我正在逐步解析它,我陷入困境,我无法弄清楚为什么代码运行不正常,我的代码是; 我希望得到数组中所有 attr 的所有 WHO_REGION 的价值,因为我不是python编程的专家......这里是JSON, “http://apps.who.int/gho/athena/data/COUNTRY.json

import json
from pprint import pprint
mylabel = []
mylabel2 = []
with open('C:\Users\Syed Saad Ahmed\Desktop\FL\COUNTRY.json') as   data_file:
data = json.load(data_file)
for i in range(0,246):
    mylabel.append(data["dimension"][0]["code"][i]["label"])
print mylabel
for j in range(0,246):
    for k in range(0,21):
        if(data["dimension"][0]["code"][j]["attr"][k]["category"]=='WHO_REGION'):
            mylabel2.append(data["dimension"][0]["code"][j]["attr"][k]["value"])
print mylabel2

1 个答案:

答案 0 :(得分:1)

您可以使用嵌套循环浏览JSON对象:

import json

obj = json.loads(data)

dimention_list = obj["dimension"]
for dimension in dimention_list:
    code_list = dimension["code"]
    for code in code_list:
        attr_list = code["attr"]
        for attr in attr_list:
            if attr["category"] == "WHO_REGION":
                print(attr["value"])

这很复杂,因为每个条目都包含一些内容......

当然,您需要添加一些过滤功能。