#python #json #api
#python #json #API
Вопрос:
Я вызываю API, и это мой ответ JSON:
{'data': [{
'id': 'd-1225959',
'startTime': '2022-12-30T00:00:00.000Z',
'endTime': '2022-12-30T23:59:00.000Z',
'checkedInAt': None,
'checkedOutAt': None,
'status': 'PENDING',
'space': {
'id': 'd-4063963',
'name': '082',
'type': 'DESK',
'createdAt': '2021-07-06T11:48:57.000Z',
'updatedAt': '2021-07-06T11:48:57.000Z',
'isAvailable': False,
'assignedTo': None,
'locationId': '133778',
'floorId': '41681',
'floorName': 'Car Park',
'neighborhoodId': '92267',
'neighborhoodName': 'NEI1'}}
Я изо 'space'
'id'
'name'
всех сил пытаюсь извлечь и, если я выполняю вложенный цикл python, например, чтобы он возвращал только заголовки, 'id'
а 'name'
не значения, хранящиеся внутри.
for order in response['data']:
print(order['id'])
print(order['startTime'])
print(order['endTime'])
print(order['checkedInAt'])
print(order['checkedOutAt'])
print(order['status'])
print(order['space'])
for doc in response['space']:
print(doc['id'], doc['name'])
Любая помощь в этом была бы очень признательна!
Комментарии:
1. Ваши примерные данные не являются допустимыми для Python.
2. Ваш ответ JSON не имеет себе равных
[
.
Ответ №1:
for doc in response['space']:
будет выполняться итерация по ключам в response['space']
dict, т.Е. doc
Будет str
.
Вы хотите сделать doc = response['space']
вместо и затем print(doc['id'])
. или напрямую print(response['space']['id'])
.
Обратите внимание, вы можете использовать dict.get()
метод, чтобы избежать KeyError
.
# if response dict has no 'space' key, return empty dict.
# if no 'id' key - return None
space_id = response.get('space', {}).get('id')
Комментарии:
1. Будет ли это выглядеть примерно так?
spacedata = response['space'].get(['id']) print(spacedata)
2. Проверьте мой обновленный ответ