如何解析具有未知属性路径的JSON?

时间:2016-10-21 05:33:08

标签: python json python-3.x

我有一些JSON字符串,我需要使用Python 3.5进行解析。以下是JSON字符串的示例:

"termsAndCourses":{  
  "Semester 2016":{  
     "000001":{  
        "courseId":"000001",
        "title":"Python",
     },
     "000035":{  
        "courseId":"000035",
        "title":"Java",
     },
     "000051":{  
        "courseId":"000051",
        "title":"C#",
     }
}

我需要使用Python 3.5来获取每个课程的标题,但属性路径可能会被更改且未知,这意味着我无法以这种方式执行此操作:

result = json.loads(json_str)
print(result["termsAndCourses"]["Semester 2016"]["000001"].title)

在上面的示例中,属性路径的两个部分" Semester 2016" " 000001" 完全不同,来自每个JSON字符串的不规则。

然后我该如何从" title"中获取内容?属性吗

2 个答案:

答案 0 :(得分:1)

这个result = json.loads(json_str)生成python词典包含items每个项目keyvalue所以要访问任何值,请在您的案例中使用d[key]嵌套词典:< / p>

>>> rr["termsAndCourses"]["Semester 2016"]["000001"]['title']
u'Python'

答案 1 :(得分:0)

您是否尝试使用for循环迭代到JSON对象?

for semester in result["termsAndCourses"]:
    for course in semester:
        print course

(不确定确切的语法)