IndexError: tuple index out of range while running both rasa shell and actions.py file
IndexError: tuple index out of range while running both rasa shell and actions.py file
这是我的 actions.py 文件 :-
来自 rasa_sdk 导入操作、跟踪器
来自 rasa_sdk.executor 导入 CollectingDispatcher
来自 rasa_sdk.events 导入 SlotSet
导入 json
class动作时间(动作):
定义名称(自己):
打印('in self method')
return'action_leave'
def run (self, dispatcher, tracker, domain):
print('in run method')
i = tracker.get_slot('name')
print(i)
with open('data1.txt') as json_file:
data = json.loads(json_file.read())
for result in data['current']:
print('name'+ result['name'])
if result['name'].lower() == i.lower():
print('name Found')
name = result['name']
SickLeave = result['Sick Leaves']
CasualLeave = result['Casual Leaves']
TotalLeave = result['Total Leaves']
LeavesLeft = result['Leaves Left']
response ="""The Leaves left for name {} is {} . You took {} casual leaves and {} sick leaves.""".format(SickLeave,CasualLeave,TotalLeave)
print(response)
dispatcher.utter_message(response)
return [SlotSet('name',i)]
这是我的 json 文件:
{
“当前的”:
[
{
"name": "韦丹",
《病叶》:3、
“休闲叶”:1个,
“总叶子”:4,
“剩下的叶子”:14
},
{
"name": "德巴斯米塔",
《病叶》:1、
“休闲叶”:5,
“总叶子”:6,
“剩下的叶子”:12
},
{
"name": "阿科帕纳",
《病叶》:4,
“休闲叶”:2,
“总叶子”:6,
“剩下的叶子”:12
},
{
"name": "安吉塔",
《病叶》:1、
“休闲叶”:0,
“总叶数”:1,
“剩下的叶子”:17
},
{
"name": "萨娜",
“病叶”:0,
“休闲叶”:6,
“总叶子”:6,
“剩下的叶子”:12
}
]
}
当我运行同时使用 rasa 运行 操作和 rasa shell 时,我在尝试获取输入名称的休假详细信息时遇到此错误。 .
这是我的错误:
在运行方法中
德巴斯米塔
名称Vedant
姓名Debasmita
名称找到
姓名Akoparna
姓名Ankita
姓名Sana
处理 uri 时发生异常:'http://localhost:5055/webhook'
追溯(最近一次通话):
文件“c:\users\debasmita\anaconda3\envs\hr\lib\site-packages\sanic\app.py”,第 976 行,在 handle_request
响应 = 等待响应
webhook 中的文件“c:\users\debasmita\anaconda3\envs\hr\lib\site-packages\rasa_sdk\endpoint.py”,第 102 行
结果 = 等待 executor.run(action_call)
文件“c:\users\debasmita\anaconda3\envs\hr\lib\site-packages\rasa_sdk\executor.py”,第 387 行,在 运行
事件 = 动作(调度程序、跟踪器、域)
文件“E:\New\actions.py”,第 57 行,在 运行
response ="""留给 name {} 的叶子是 {} 。你拿了 {} 个临时假和 {} 个病假。""".format(SickLeave,CasualLeave,TotalLeave)
IndexError:元组索引超出范围
请帮帮我。
问题似乎出在您尝试 'format' 结果的那一行:
response ="""The Leaves left for name {} is {} . You took {} casual leaves and {} sick leaves.""".format(SickLeave,CasualLeave,TotalLeave)
请注意,你有4个大括号,只有3个参数,所以使用'format'的替换过程无法完成,我重现错误如下:
请尝试添加缺少的参数以查看错误是否仍然存在。
这是我的 actions.py 文件 :-
来自 rasa_sdk 导入操作、跟踪器 来自 rasa_sdk.executor 导入 CollectingDispatcher 来自 rasa_sdk.events 导入 SlotSet 导入 json
class动作时间(动作): 定义名称(自己): 打印('in self method') return'action_leave'
def run (self, dispatcher, tracker, domain):
print('in run method')
i = tracker.get_slot('name')
print(i)
with open('data1.txt') as json_file:
data = json.loads(json_file.read())
for result in data['current']:
print('name'+ result['name'])
if result['name'].lower() == i.lower():
print('name Found')
name = result['name']
SickLeave = result['Sick Leaves']
CasualLeave = result['Casual Leaves']
TotalLeave = result['Total Leaves']
LeavesLeft = result['Leaves Left']
response ="""The Leaves left for name {} is {} . You took {} casual leaves and {} sick leaves.""".format(SickLeave,CasualLeave,TotalLeave)
print(response)
dispatcher.utter_message(response)
return [SlotSet('name',i)]
这是我的 json 文件:
{ “当前的”: [ { "name": "韦丹", 《病叶》:3、 “休闲叶”:1个, “总叶子”:4, “剩下的叶子”:14 }, { "name": "德巴斯米塔", 《病叶》:1、 “休闲叶”:5, “总叶子”:6, “剩下的叶子”:12 }, { "name": "阿科帕纳", 《病叶》:4, “休闲叶”:2, “总叶子”:6, “剩下的叶子”:12 }, { "name": "安吉塔", 《病叶》:1、 “休闲叶”:0, “总叶数”:1, “剩下的叶子”:17 }, { "name": "萨娜", “病叶”:0, “休闲叶”:6, “总叶子”:6, “剩下的叶子”:12 } ] }
当我运行同时使用 rasa 运行 操作和 rasa shell 时,我在尝试获取输入名称的休假详细信息时遇到此错误。 .
这是我的错误:
在运行方法中 德巴斯米塔 名称Vedant 姓名Debasmita 名称找到 姓名Akoparna 姓名Ankita 姓名Sana 处理 uri 时发生异常:'http://localhost:5055/webhook' 追溯(最近一次通话): 文件“c:\users\debasmita\anaconda3\envs\hr\lib\site-packages\sanic\app.py”,第 976 行,在 handle_request 响应 = 等待响应 webhook 中的文件“c:\users\debasmita\anaconda3\envs\hr\lib\site-packages\rasa_sdk\endpoint.py”,第 102 行 结果 = 等待 executor.run(action_call) 文件“c:\users\debasmita\anaconda3\envs\hr\lib\site-packages\rasa_sdk\executor.py”,第 387 行,在 运行 事件 = 动作(调度程序、跟踪器、域) 文件“E:\New\actions.py”,第 57 行,在 运行 response ="""留给 name {} 的叶子是 {} 。你拿了 {} 个临时假和 {} 个病假。""".format(SickLeave,CasualLeave,TotalLeave) IndexError:元组索引超出范围
请帮帮我。
问题似乎出在您尝试 'format' 结果的那一行:
response ="""The Leaves left for name {} is {} . You took {} casual leaves and {} sick leaves.""".format(SickLeave,CasualLeave,TotalLeave)
请注意,你有4个大括号,只有3个参数,所以使用'format'的替换过程无法完成,我重现错误如下:
请尝试添加缺少的参数以查看错误是否仍然存在。