You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中获取Alexa Skill Slot值?代码问题求助

解决Alexa Skill Slot值获取失败的问题

首先一眼就看到你代码里的语法问题啦!这行代码的写法不符合Python字典的访问规则:

textoutput = intent['slots'].['slotsname'].['value']

你在.后面多写了[],Python里嵌套字典的访问是直接用['key']链式调用,不需要加多余的点号。

第一步:修正语法错误

把那行代码改成正确的写法:

textoutput = intent['slots']['slotsname']['value']

第二步:添加容错处理(避免崩溃)

就算语法对了,也可能因为用户没提供slot值、slot名称拼写错误或者Alexa没正确识别slot导致KeyError。建议用get()方法安全取值,给程序留缓冲空间:

# 逐层安全获取slot值,没取到就返回默认提示
slot = intent.get('slots', {}).get('slotsname', {})
textoutput = slot.get('value', '你还没提供相关信息哦')

额外排查要点

  • 确认Skill配置里的slot名称和代码里的slotsname完全一致(大小写敏感!)
  • 可以临时加一行print(intent),打印出intent的完整结构,确认slot的层级和你预期的一致
  • 检查intent是否正确触发,确保session传递的intent对象里确实包含了目标slot数据

给你一个完整的示例片段参考:

@ask.intent('YourTargetIntent')
def handle_target_intent(intent):
    # 安全获取slot值
    slot_value = intent.get('slots', {}).get('slotsname', {}).get('value')
    if not slot_value:
        return question('麻烦你再说一遍相关信息可以吗?')
    # 后续业务逻辑使用slot_value
    return statement(f'你提供的信息是:{slot_value}')

内容的提问来源于stack exchange,提问作者venkatesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:50:36