无法解码 JSON 对象:预期值:第 1 行第 1 列(字符 0)

新手上路,请多包涵

这个问题有点重复,但我找不到解决方案。当我调用 flask 应用程序并传递 JSON 数据时,出现错误:

 "Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)</p>"

下面是烧瓶代码:

 @app.route('/data_extraction', methods=['POST'])
def check_endpoint2():
    data= request.json()
    result = data['title']
    out={"result": str(result)}
    return json.dumps(out)
    #return 'JSON Posted'

这就是我从 curl 调用它的方式

curl -i -H "Content-Type: application/json" charset=utf-8 -X POST -d '{"title":"Read a book"}' 127.0.0.1:5000/data_extraction

我也想知道如何curl JSON文件(test_data.json),会不会是这样的?

 curl -i -H "Content-Type: application/json" charset=utf-8 -X POST -d @test_data.json 127.0.0.1:5000/data_extraction

原文由 Cathy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

你大部分时间都在那里。问题是 -d 覆盖了您提供的 Content-Type 标头。尝试 --data 而不是 -d

并将 data = request.json() 更改为 data = request.json

原文由 Dave W. Smith 发布,翻译遵循 CC BY-SA 4.0 许可协议

短语“charset=utf-8”应该在“Content-Type”标头中,如下所示:“Content-Type: application/json; charset=utf-8”

原文由 haikku 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题