Flask API не может декодировать данные JSON.Ошибка: «сообщение»: «Не удалось декодировать объект JSON: ожидаемое значение: строка 1, столбец 1 (символ 0)» - PullRequest
0 голосов
/ 27 февраля 2019

Я настраиваю простой 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 -H "Content-Type: application/json" -X POST -d '{'username':"abc",'password':"abc"}' http://localhost:5000

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Вам нужно выбрать raw -> JSON (application / json) в Postman, как это:

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

\ экранирует " символ.

0 голосов
/ 27 февраля 2019

Неверный запрос curl (полезная нагрузка).Используйте двойные кавычки в полезной нагрузке.

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