Это продолжение этого вопроса. Вопрос
Также этот вопрос похож, но не решает мою проблему Вопрос2
Я пытаюсь разобрать вложенный json, чтобы получить Проверьте, сколькоДля детей в определенном месте, я пытаюсь проверить, если "children:" = None
, и счетчик приращений, чтобы проверить, сколько уровней мне нужно пройти, чтобы получить младшего ребенка, или было бы более эффективное решение:
Мне нужно собрать все дочерние значения в список и продолжать до тех пор, пока "children:" = None
.
Объект Json может увеличиться в количестве дочерних элементов, поэтому у нас может быть несколько уровней дочерних элементов, что может привести к беспорядку, если яхочу вложить список и получить значения, как я могу сделать это динамически?
{
'locationId': 'location1',
'name': 'Name',
'type': 'Ward',
'patientId': None,
'children': [{
'locationId': 'Child_location2',
'name': 'Name',
'type': 'Bed',
'patientId': None,
'children': [{
'locationId': 'Child_Child_location3',
'name': 'Name',
'type': 'HospitalGroup',
'patientId': None,
'children': None
}]
}, {
'locationId': 'location4',
'name': 'Name',
'type': 'Hospital',
'patientId': None,
'children': None
}, {
'locationId': 'location5',
'name': 'Name',
'type': 'Bed',
'patientId': None,
'children': None
}, {
'locationId': 'location6',
'name': 'Name',
'type': 'Bed',
'patientId': None,
'children': None
}, {
'locationId': 'location27',
'name': 'Name',
'type': 'Bed',
'patientId': None,
'children': None
}]
}
Я пытался сделать что-то вроде этого
import requests
def Get_Child(URL, Name):
headers = {
'accept': 'text/plain',
}
response = requests.get(
URL + Name,
headers=headers)
json_data = response.json()
print (json_data)
list = []
for locationId in json_data['locationId']:
list.append(locationId)
for children in locationId['children']:
list.append(children)
, но это дает мне следующую ошибку,
for children in locationId['locationId']: TypeError: string indices must be integers