Flask API 无法解码 JSON 数据。错误:“消息”:“无法解码 JSON 对象:期望值:第 1 行第 1 列(字符 0)”

FPr*_*log 5 python flask flask-restful

我正在使用flask 和flask-restful 设置一个简单的rest api。现在我要做的就是用一些 Json 数据创建一个 post 请求,然后返回它只是为了看看它是否有效。我总是得到同样的错误"message": "Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)"

下面是我的代码

from flask import Flask, jsonify, request
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)


class Tester(Resource):
   def get(self):
       return {'about': 'Hello World'}

   def post(self):
       data_json = request.get_json(force=True)
       return {'you sent': data_json}


api.add_resource(Tester, '/')

if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

我为了测试这个而提出的 curl 请求如下,我也尝试过使用邮递员提出请求

curl -H "Content-Type: application/json" -X POST -d '{'username':"abc",'password':"abc"}' http://localhost:5000
Run Code Online (Sandbox Code Playgroud)

nee*_*obe 11

您需要像这样在 Postman 中选择 raw -> JSON (application/json):

在此处输入图片说明

当涉及到您的 cURL 请求时,answer解释说 Windows 的命令行缺乏对带单引号的字符串的支持,因此请使用:

curl -i -H "Content-Type: application/json" -X POST -d "{\"username\":\"abc\", \"password\":\"abc\"}" 127.0.0.1:5000
Run Code Online (Sandbox Code Playgroud)

反而:

curl -H "Content-Type: application/json" -X POST -d '{'username':"abc",'password':"abc"}' http://localhost:5000
Run Code Online (Sandbox Code Playgroud)

\转义"字符。