Моему обработчику передано следующее намерение:
"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.3af5c8c3-1d1f-4169-8ce8-fde1a99a7c8d",
"timestamp": "2019-04-03T04:08:06Z",
"locale": "en-US",
"intent": {
"name": "get_speeds",
"confirmationStatus": "NONE",
"slots": {
"direction": {
"name": "direction",
"value": "inbound",
"resolutions": {
"resolutionsPerAuthority": [
{
"authority": "amzn1.er-authority.echo-sdk.amzn1.ask.skill.e76bf13b-71ac-4a90-94d4-597aa597ae87.direction",
"status": {
"code": "ER_SUCCESS_MATCH"
},
"values": [
{
"value": {
"name": "inbound",
"id": "a8e6fe5b9e68f30a146cefebaa7edcc3"
}
}
]
}
]
},
"confirmationStatus": "NONE",
"source": "USER"
}
}
},
"dialogState": "COMPLETED"
}
Я хочу извлечь фактическое значение, а не высказывание, например, имя значения, в данном случае «входящее». Я пробовал это и различные подобные итерации (отпечатки для отладки):
slots = handler_input.request_envelope.request.intent.slots
resolutions = slots["direction"].resolutions
print(resolutions)
print(resolutions["resolutions_per_authority"])
direction = resolutions["resolutions_per_authority"][0]["values"][0]["value"]["name"]
session_attr = handler_input.attributes_manager.session_attributes
Я также пытался сделать то же самое с «olutionsPerAuthority », который передает JSON, но, очевидно, не то, что выходит в мою программу, как в журнале:
04:08:07
{'resolutions_per_authority': [{'authority': 'amzn1.er-authority.echo-sdk.amzn1.ask.skill.e76bf13b-71ac-4a90-94d4-597aa597ae87.direction',
04:08:07
'status': {'code': 'ER_SUCCESS_MATCH'},
04:08:07
'values': [{'value': {'id': 'a8e6fe5b9e68f30a146cefebaa7edcc3',
04:08:07
'name': 'inbound'}}]}]}
04:08:07
'Resolutions' object is not subscriptable
Это ошибка, которую я постоянно получаю со всеми моими подходами: объект 'Resolutions' не подходит для подписки. Может кто-нибудь помочь мне с тем, как извлечь значения канонических слотов? Мне нужно сделать то же самое для нескольких других целей, но я думаю, что если я смогу заставить это работать, это станет моделью для других.