索引器错误:运行rasa shell和actions.py文件时元组索引超出范围

2024-09-30 18:15:41 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的actions.py文件:-

从rasa_sdk导入操作,跟踪程序 从rasa_sdk.executor导入CollectionDispatcher 从rasa_sdk.events导入SlotSet 导入json

集体行动HR(行动): def名称(自我): 打印('in self method') 返回“离开行动”

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文件:

{ “当前”: [ { “名称”:“韦丹特”, "病假":, "假":一,, “总叶数”:4, “左叶”:14 }, { “名称”:“Debasmita”, "病假":一,, “临时休假”:5, “总叶数”:6, “左叶”:12 }, { “名称”:“Akoparna”, "病假":, "假":二,, “总叶数”:6, “左叶”:12 }, { “名称”:“安基塔”, "病假":一,, “临时休假”:0, “总叶数”:1, “左叶”:17 }, { “姓名”:“萨那”, “病假”:0, “临时休假”:6, “总叶数”:6, “左叶”:12 } ] }

当我同时运行rasa run操作和rasa shell时,当我试图获取输入名称的休假详细信息时,会出现此错误

这是我的错误:

运行中方法 德巴斯米塔 命名者 金龟子 找到的名称 纳米亚科帕纳 纳曼基塔 纳萨纳 处理uri时发生异常:'http://localhost:5055/webhook' 回溯(最近一次呼叫最后一次): 文件“c:\users\debasmita\anaconda3\envs\hr\lib\site packages\sanic\app.py”,第976行,在handle\u请求中 响应=等待响应 webhook中的文件“c:\users\debasmita\anaconda3\envs\hr\lib\site packages\rasa\u sdk\endpoint.py”,第102行 结果=等待执行器运行(操作调用) 文件“c:\users\debasmita\anaconda3\envs\hr\lib\site packages\rasa\u sdk\executor.py”,第387行,正在运行 事件=操作(调度程序、跟踪器、域) 文件“E:\New\actions.py”,第57行,在运行中 response=“”留给name{}的假期为{}。您休了{}个事假和{}个病假。”“”。格式(病假、临时休假、全休) 索引器错误:元组索引超出范围

请帮帮我


Tags: 文件runnameinpy名称jsonresponse
1条回答
网友
1楼 · 发布于 2024-09-30 18:15:41

问题似乎出在您试图“格式化”结果的那一行:

response ="""The Leaves left for name {} is {} . You took {} casual leaves and {} sick leaves.""".format(SickLeave,CasualLeave,TotalLeave)

请注意,您有4个花括号和3个参数,因此无法完成使用“格式”的替换过程,我复制了以下错误:

enter image description here

请尝试添加缺少的参数,以查看错误是否仍然存在

相关问题 更多 >