打印随机数会导致Alexa的技能出现错误

时间:2019-04-09 08:34:59

标签: python alexa-skills-kit

this教程之后,我正在尝试做一个简单的Alexa技能(这很简单,我可能会补充)。

问题是,我实际上遇到了一个我似乎不了解的问题。在本教程的第二部分中,该人员演示了如何调试,但是我的错误状态为succeeded,所以我不太了解发生了什么。 Alexa只是说: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))

在打印随机数之前,它工作正常。实际上,在另一个函数中,我正在获取字符串的随机值,并且效果很好!

(可以在随机模式下正常工作的示例代码:)

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错误:

(为了以防万一,我隐藏了请求ID):

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, "%"的某些事情是错误的,因为rand运行良好...而且我似乎找不到解决方案。

编辑:

我尝试过的其他解决方案:

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 :(得分:0)

尝试一下:

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

speech_output应该是一个字符串。在您的示例中,它是一个元组。