Flask API中request.get_json()返回(Ellipsis, Ellipsis)问题排查求助
问题可能原因
- 类方法缩进错误:你提供的代码中
configure、get、post三个方法的缩进层级和PetsController类同级,不属于类成员。Flask的MethodView需要对应HTTP方法的成员方法才能正常处理请求,当前代码的PetsController类实际没有绑定post方法,请求处理逻辑异常,可能导致request对象解析错误。 - 请求头未正确配置:Postman发送POST请求时未设置
Content-Type: application/json请求头,Flask无法识别请求体为JSON格式。常规情况下该场景get_json()会返回None,若搭配异常的中间件/依赖注入逻辑,可能出现返回Ellipsis元组的情况。 - 依赖注入导致request代理异常:你使用了injector的
@singleton和@inject装饰器,Flask的request是线程本地的代理对象,不能直接注入到单例类中。如果未正确配置flask-injector的RequestScope,未将request对象纳入injector的托管范围,单例类在引用request时会拿到错误的占位符值,而非当前请求的真实对象,解析JSON时就会返回异常的(Ellipsis, Ellipsis)元组。 - 请求流被提前消费:如果在调用
request.get_json()之前,代码的其他位置(比如before_request钩子、自定义中间件)已经读取过request.data、request.stream或request.form等属性,请求体的数据流已经被消费,get_json()无法再次读取解析,就会返回异常结果。 - 依赖版本不兼容:你使用的Flask版本和injector/flask-injector版本存在兼容问题,导致request代理对象的属性被错误替换为Ellipsis占位符。
内容的提问来源于stack exchange,提问作者KZiovas
相关产品推荐
相关产品推荐

