Я пытаюсь извлечь значение из вложенного dist, которое выглядит следующим образом:
response =
{'TransitGatewayRouteTables': [{'TransitGatewayRouteTableId': 'tgw-rtb-0461b603f87a09881',
'TransitGatewayId': 'tgw-0d79045d0f874bfd4',
'State': 'available',
'DefaultAssociationRouteTable': False,
'DefaultPropagationRouteTable': True,
'CreationTime': datetime.datetime(2020, 6, 18, 2, 32, 25,
tzinfo=tzlocal()),
'Tags': []}],
'ResponseMetadata': {'RequestId': '8d427b26-7735-4154-a7a3-ed45c83b5894',
'HTTPStatusCode': 200,
'HTTPHeaders': {'x-amzn-requestid': '8d427b26-7735-4154-a7a3-ed45c83b5894',
'content-type': 'text/xml;charset=UTF-8',
'transfer-encoding': 'chunked',
'vary': 'accept-encoding',
'date': 'Thu, 18 Jun 2020 15:54:47 GMT',
'server': 'AmazonEC2'},
'RetryAttempts': 0}}
Я пытаюсь извлечь значение «tgw-rtb-0461b603f87a09881» из этого, не сумев этого сделать. Пробовали использовать
print (response['TransitGatewayRouteTables']['TransitGatewayRouteTableId'])
, но это дает ошибку: «индексы списка должны быть целыми числами или срезами, а не str: TypeError»
Я могу получить на один уровень глубже, используя следующее:
rtid = response.values()
print(rtid)
Это подводит меня к следующему
dict_values([[{'TransitGatewayRouteTableId': 'tgw-rtb-0461b603f87a09881', 'TransitGatewayId': 'tgw-0d79045d0f874bfd4', 'State': 'available', 'DefaultAssociationRouteTable': False, 'DefaultPropagationRouteTable': True, 'CreationTime': datetime.datetime(2020, 6, 18, 2, 32, 25, tzinfo=tzlocal()), 'Tags': []}], {'RequestId': '6a0ec6df-c41c-4e06-b98d-1afff74e5915', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '6a0ec6df-c41c-4e06-b98d-1afff74e5915', 'content-type': 'text/xml;charset=UTF-8', 'transfer-encoding': 'chunked', 'vary': 'accept-encoding', 'date': 'Thu, 18 Jun 2020 16:13:00 GMT', 'server': 'AmazonEC2'}, 'RetryAttempts': 0}])
Не совсем уверен, иду ли я в правильном направлении. Было бы здорово, если бы кто-нибудь мог помочь описать, как получить требуемую ценность.