Печать случайного числа дает ошибку в умении Алекса - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь выполнить простое умение Alexa, следуя этому учебнику (что довольно просто, я могу добавить).

Проблема в том, что у меня действительно есть проблема, которую яне похоже, чтобы понять.Во второй части урока парень показывает, как отлаживать, но состояние моей ошибки succeeded, поэтому я не очень понимаю, что происходит.Алекса просто говорит: There has been an error with he skill you requested и выходит.

Если обнаруженное намерение составляет test (работает просто сказать «дай мне результаты теста»):

def get_test_response():
    session_attributes = {}
    card_title = "Test"
    number=random.randint(0,100)
    speech_output = "This is the test result",number, "%"
    should_end_session = False
    return build_response(session_attributes, build_speechlet_response(
        card_title, speech_output, reprompt_text, should_end_session))

До печати случайного числа это работало нормально.Фактически, в другой функции я получаю случайное значение строки, и она работает просто отлично!

(Пример кода того, что отлично работает со random:)

compliments=['you have beautiful eyes', 'you are really kind', 'I like your hair color', 'you smell nice!']
speech_output = compliments[random.randint(0,len(compliments)-1)]

Я попытался выполнить код в консоли Python (чтобы проверить любые ошибки), и он работал нормально.Ошибка, которую alexa отображает в инструменте отладки, следующая:

(я на всякий случай скрываю идентификатор запроса):

Response:
null

Request ID:
"REQUESTID IM HIDING IT JUST IN CASE, NOT IMPORTANT"

Function Logs:
START RequestId: REQUESTID IM HIDING IT JUST IN CASE, NOT IMPORTANT Version: $LATEST
Incoming request...
on_session_ended requestId=amzn1.echo-api.request.hiding this one also, sessionId=amzn1.echo-api.session.and hiding this one
END RequestId: hiding this one
REPORT RequestId: hiding this one   Duration: 34.62 ms  Billed Duration: 100 ms     Memory Size: 128 MB Max Memory Used: 48 MB

Я предполагаю, что что-то в "this is the test result", number, "%"неправильно, потому что ранд работает нормально ... И я не могу найти решение.

Редактировать:

Другие решения, которые я пробовал:

number=random.randint(0,100)
st='this is the result of the test '
st+=str(number)
st+='%'
speech_output = st

Все еще не работает.Обратился в службу поддержки Alexa, чтобы узнать, что я делаю не так.

Я тоже пробовал с форматированием:

speech_output = "This is the test result {}%".format(number)

1 Ответ

0 голосов
/ 09 апреля 2019

Попробуйте это:

speech_output = "This is the test result {num}%".format(num=number)

speech_output должен быть строкой.В вашем примере это кортеж.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...