Цикл JSON запрос Алекса навык - PullRequest
0 голосов
/ 31 августа 2018

У меня, похоже, проблема с циклическим просмотром данных, которые я извлек из URL в моем навыке Alexa, вот мой пример кода:

def get_elevator_status():
session_attributes = {}
card_title = "Septa Elevator Status"
reprompt_text = ""
should_end_session = False


response = urllib2.urlopen(API_BASE_URL + "/elevator")
septa_elevator_status = json.load(response) 


for elevators in septa_elevator_status['results']:
    speech_output = "The following elevators are out of service." "On " + elevators['line'] + " at station " + elevators['station'] + " the " + elevators['elevator'] + " elevator has " + elevators['message']

Если я запускаю код в оболочке python и распечатываю результаты (если есть несколько отключений), он выводит все строки. Но когда я проверяю свой навык Alexa и спрашиваю об отключениях, он сообщает только об одном результате, хотя есть несколько отключений лифта. Я что-то упустил, чтобы это работало? Должен ли этот код пройти цикл и сказать, что все результаты найдены правильно?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

При циклическом просмотре результирующего набора каждый раз, когда вы перезаписываете speech_output этим конкретным elevators. Вместо этого вам нужно объединить каждый результат в speech_output.

for elevators in septa_elevator_status['results']:
    speech_output =  speech_output  + " <s> The following elevators are out of service." "On " + elevators['line'] + " at station " + elevators['station'] + " the " + elevators['elevator'] + " elevator has " + elevators['message'] + "</s>"

<s> - это тег предложения, используйте его, только если вы используете SSML.

0 голосов
/ 31 августа 2018

можете ли вы опубликовать 'ответ' json, я думаю, что json сформирован неправильно

...