Python 3.x 返回处理的异常

Python 3.x 返回处理的异常,python-3.x,Python 3.x,我不明白为什么我的程序没有返回一个json响应,返回的错误代码是我在try-catch块中定义的 json = request.json return jsonify(controller.new_configuration(json)) 这是我在Controller.py中的函数新配置 def new_configuration(self, data): try: self.config.read('system/settings.ini') sel

我不明白为什么我的程序没有返回一个json响应,返回的错误代码是我在try-catch块中定义的

json = request.json
return jsonify(controller.new_configuration(json))
这是我在Controller.py中的函数新配置

def new_configuration(self, data):

    try:
        self.config.read('system/settings.ini')
        self.config.set('service_configuration', 'servid', data['servID'])
        self.config.set('service_configuration', 'uri', data['uri'])
        self.config.set('service_configuration', 'res_temp_min', data['res_temp_min'])

        for param in data['modelParameters']:
            self.config.set('model_param', param['k'], param['v'])

        with open('system/settings.ini', 'w') as configfile:
            self.config.write(configfile)

    except TypeError as e:
        return {"rc": 1, "rcDesc": e}
    except ValueError as e:
        return {"rc": 1, "rcDesc": e}
    except KeyError as e:
        self.log.warning(e)
        return {"rc": 1, "rcDesc": e}
    except AttributeError as e:
        self.log.warning(e)
        return {"rc": 1, "rcDesc": e}

    return {"rc": 0, "rcDesc": "ok"}
我故意发送了一个TypeError json,我想它应该返回{rc:1,rcDesc:e},但它不是。 我收到了此错误,应用程序中断:

raise TypeError(repr(o) + " is not JSON serializable")
TypeError: KeyError('servID',) is not JSON serializable
因为e的类型是某种类型的错误,不能序列化为JSON

尝试:


此外,可能不需要单独捕获所有这些错误,这取决于您正在执行的操作

您收到的错误消息中有哪些内容不清楚?您希望异常实例被序列化到什么位置?您可能应该在jsonify的周围加上try/except块。。。看起来这个函数抛出了异常。这很有效!它应该作为api响应工作。我想返回一个错误代码和描述。
return {"rc": 1, "rcDesc": repr(e)}