2016-10-21 11 views
1

У меня есть строки JSON, и мне нужно разобрать Python 3.5. Вот пример строки JSON:Как разобрать 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) 

В этом примере выше, две секции пути свойства «семестр 2016» и «000001» совершенно различны и нерегулярные от каждого из строки JSON.

Тогда как мне получить контент от "title" property?

+1

'[c ['title'] для c в результате [" termsAndCourses "] [" Semester 2016 "]. Values ​​()]' –

ответ

0

Вы пытались выполнить итерацию в свой объект JSON с помощью цикла for?

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

(Не уверен, что точный синтаксис)

+0

okay получил его. Я просто перебираю его, и теперь могу пройти путь ... –

1

это result = json.loads(json_str) изготовлять словарь питона состоит items каждый элемент key и value так, чтобы получить доступ любое использование значения d[key] в вашем случае вложенных словарей так:

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