Как ходить по древу JSON? (Python)
Цель: вывести из всех элементов (entities) поля "subject" --> "name" + "number" из json запроса
Отрывок запроса:
{
"entities": [
{
"school": {
"id": 254044,
"name": "МАОУ \"Учебное заведение №1\" г.Города"
},
"subject": {
"id": 1470,
"name": "Основы безопасности жизнедеятельности",
"sysname": "OBJ"
},
"number": 1
},
{
"school": {
"id": 254044,
"name": "МАОУ \"Учебное заведение №1\" г.Города"
},
"subject": {
"id": 1133,
"name": "Математика",
"sysname": "Mt"
},
"number": 2
}
],
"totalCount": 32
}
То есть, вывод должен быть:
1. Основы безопасности жизнедеятельности
2. Математика
Застрял на этом этапе проекта, гуглил до невозможности, help me please :)
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
Вы можете воспольховаться методом json.loads для преобразования JSON в объект Python. Объект вы можете "обойти" с помощью индексации и цикла for:
import json
s = r'{"entities":[{"school":{"id":254044,"name":"МАОУ \"Учебное заведение №1\" г.Города"},"subject":{"id":1470,"name":"Основы безопасности жизнедеятельности","sysname":"OBJ"},"number":1},{"school":{"id":254044,"name":"МАОУ \"Учебное заведение №1\" г.Города"},"subject":{"id":1133,"name":"Математика","sysname":"Mt"},"number":2}],"totalCount":32}'
tree = json.loads(s)
for entity in tree['entities']:
number = entity['number']
name = entity['subject']['name']
print(f'{number}. {name}')
stdout:
1. Основы безопасности жизнедеятельности
2. Математика