繁体   English   中英

如何从 json python 获取嵌套响应数据

[英]How to get a nested response data from json python

我打电话给 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'}}

如果我执行嵌套的 python 循环,我正在努力提取'space' 'id''name' ,因此它只返回'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'])

对此的任何帮助将不胜感激!

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') 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM