将整数添加到会话存储的整数
Adding an integer to session-stored integer
我正在 python 中编写一项技能,它在会话中将整数存储为“mor_score”,如下所示:
{
"session": {
"sessionId": "SessionId.REDACTED",
"application": {
"applicationId": "amzn1.ask.skill.REDACTED"
},
"attributes": {
"mor_score": 0
},
我的一个意图是尝试向 mor_score 添加一个值,但我不太清楚如何操作。意图代码如下所示:
def choice_one(intent, session):
card_title = "Add It Up"
reprompt_text = None
should_end_session = False
if intent['slots']['ChoiceOneSlot']['value'] == 'Red':
mscore = session.get('attributes').get('mor_score') # currently a value of 0
session_attributes = {'mor_score': mscore +=2} # trying to add 2
speech_output = "<speak>Okay, you choose red.</speak>"
elif intent['slots']['ChoiceOne']['value'] == 'blue':
speech_output = "<speak>Yes, you choose blue.</speak>"
else:
speech_output = "<speak>Try again with an acceptable answer.</speak>"
return build_result(session_attributes, build_speechlet_response(
card_title, speech_output, reprompt_text, should_end_session))
我知道如何将结果 return 返回到 Alexa 会话中,但我显然错过了在 returned 之前将数字添加到变量的过程。非常感谢任何帮助。
编辑:下面的代码帮我解决了!
mscore = session.get('attributes').get('mor_score')
mscore +=2
session_attributes = {'mor_score': mscore}
mscore += 2
是 Python 中的语句 - 它绝对不能用作表达式的一部分。您需要将其单独放在一行中(然后在表达式中仅使用 mscore
),或者在表达式中使用 mscore + 2
。这两种方法的不同之处在于 mscore
之后留下的值,但这在这里并不重要,因为您之后不会使用它。
我正在 python 中编写一项技能,它在会话中将整数存储为“mor_score”,如下所示:
{
"session": {
"sessionId": "SessionId.REDACTED",
"application": {
"applicationId": "amzn1.ask.skill.REDACTED"
},
"attributes": {
"mor_score": 0
},
我的一个意图是尝试向 mor_score 添加一个值,但我不太清楚如何操作。意图代码如下所示:
def choice_one(intent, session):
card_title = "Add It Up"
reprompt_text = None
should_end_session = False
if intent['slots']['ChoiceOneSlot']['value'] == 'Red':
mscore = session.get('attributes').get('mor_score') # currently a value of 0
session_attributes = {'mor_score': mscore +=2} # trying to add 2
speech_output = "<speak>Okay, you choose red.</speak>"
elif intent['slots']['ChoiceOne']['value'] == 'blue':
speech_output = "<speak>Yes, you choose blue.</speak>"
else:
speech_output = "<speak>Try again with an acceptable answer.</speak>"
return build_result(session_attributes, build_speechlet_response(
card_title, speech_output, reprompt_text, should_end_session))
我知道如何将结果 return 返回到 Alexa 会话中,但我显然错过了在 returned 之前将数字添加到变量的过程。非常感谢任何帮助。
编辑:下面的代码帮我解决了!
mscore = session.get('attributes').get('mor_score')
mscore +=2
session_attributes = {'mor_score': mscore}
mscore += 2
是 Python 中的语句 - 它绝对不能用作表达式的一部分。您需要将其单独放在一行中(然后在表达式中仅使用 mscore
),或者在表达式中使用 mscore + 2
。这两种方法的不同之处在于 mscore
之后留下的值,但这在这里并不重要,因为您之后不会使用它。