【问题标题】:Python 3 Flask Rest Api: "request.get_json()" gives TypeError: 'NoneType' object is not subscriptablePython 3 Flask Rest Api: "request.get_json()" 给出 TypeError: 'NoneType' object is not subscriptable
【发布时间】:2020-07-04 17:40:28
【问题描述】:

我正在 python 烧瓶中创建一个路由,它将作为 rest api 来注册用户。 当我尝试在 POST 方法中获取通过邮递员传递的 json 数据时,出现错误 TypeError: 'NoneType' object is not subscriptable

我对邮递员的要求: http://127.0.0.1:5000/register

原始输入:{"username":"alok","password":"1234"}

我的路线和功能:

@app.route('/register', methods=['GET', 'POST'])
def signup_user():
    data = request.get_json()
    return data['username']

据我所知,上述函数应该返回:“alok

但我收到错误:TypeError: 'NoneType' object is not subscriptable

任何帮助将不胜感激

【问题讨论】:

    标签: flask-sqlalchemy flask-restful


    【解决方案1】:

    我在网上花了几个小时我从烧瓶官方网站得到了答案

    我在发出请求时没有设置 mimetype。
    如果 mimetype 不指示 JSON(应用程序/json,请参阅 is_json()),则返回 None。
    request.get_json() 用于将数据解析为 JSON。 实际语法是get_json(force=False, silent=False, cache=True)

    Parameters
    force – 忽略 mimetype 并始终尝试解析 JSON。
    silent – 静默解析错误并返回 None。
    cache – 存储解析后的 JSON 以供后续调用返回。

    所以最后我把我的代码改成了

    @app.route('/register', methods=['GET', 'POST'])
    def signup_user():
        data = request.get_json(force=True)
        return data['username']
    

    解决了。

    【讨论】:

      猜你喜欢
      • 2018-02-05
      • 2020-11-02
      • 2022-08-13
      • 2018-01-23
      • 1970-01-01
      • 2018-10-15
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多