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

Flask-RESTful调用parse_args()返回JSON解码失败问题求助

问题原因及解决方案

问题原因

reqparse.RequestParser默认会尝试从JSON请求体中解析参数,但你发起的是GET请求,GET请求不存在请求体,调用parse_args()时会因无法解析不存在的JSON内容,抛出"Failed to decode JSON object: None"错误。

解决方法

在添加参数时,通过location='args'指定从URL查询字符串中获取参数,修改后的代码如下:

class Ping(Resource):
    def get(self):
        parser = reqparse.RequestParser()
        parser.add_argument("lang", location='args')  # 指定参数来源为URL查询串
        args = parser.parse_args()
        return {
            "message": "any message",
            "lang": args.get("lang")  # 可正常获取URL中的lang参数
        }, 200

如果你的接口大多是GET请求,也可以初始化Parser时直接指定全局默认位置:

parser = reqparse.RequestParser(location='args')

额外说明

Flask-RESTful的reqparse已被官方标记为废弃,官方推荐使用marshmallow库进行参数校验与解析,但如果需要继续使用reqparse,确保指定正确的参数来源即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 17:42:44