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

时间:2019-02-27 14:48:10

标签: python flask flask-restful

我正在使用flask和flask-restful建立一个简单的rest api。现在,我要做的就是用一些Json数据创建一个发布请求,然后返回它以查看它是否有效。我总是遇到相同的错误"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)

下面是我要测试的curl请求,我也尝试过使用邮递员进行请求

curl -H "Content-Type: application/json" -X POST -d '{'username':"abc",'password':"abc"}' http://localhost:5000

3 个答案:

答案 0 :(得分:1)

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

enter image description here

关于您的cURL请求,answer解释说Windows的命令行不支持单引号的字符串,因此请使用:

curl -i -H "Content-Type: application/json" -X POST -d "{\"username\":\"abc\", \"password\":\"abc\"}" 127.0.0.1:5000

相反:

curl -H "Content-Type: application/json" -X POST -d '{'username':"abc",'password':"abc"}' http://localhost:5000

\转义为"字符。

答案 1 :(得分:0)

卷曲请求(有效负载)不正确。在有效负载中使用双引号。

curl -H "Content-Type: application/json" -X POST -d '{"username":"abc","password":"abc"}' http://localhost:5000

答案 2 :(得分:0)

您还需要启用 Content-Length 标头。

Without header

With header