为什么Flask'POST'不返回简单的JSON对象?

时间:2019-12-26 21:40:12

标签: python json http flask request

我试图找到类似的问题(或文档),但收效甚微,因此,如果有人可以指出我在这里出问题的方向,我将非常感谢。

>

在Python 3中,我使用Flask接收JSON的HTTP请求并将其返回。

from flask import Flask, request
app=Flask(__name__, template_folder='')

@app.route('/json', methods=['POST'])
def json():
    return format(request)

我正在使用Postman将以下内容发布到127.0.0.1/json(以确认:如果我只要求127.0.0.1/json返回“ Hello World”,则效果很好):

{
    "test":"Hello World"
}

然后邮递员回复:

<Request 'http://127.0.0.1:5000/json' [POST]>

到目前为止,太好了。但是它报告“属性名称中存在无效字符”。

此外,当我将Python脚本更改为:

from flask import Flask, request
app=Flask(__name__, template_folder='')

@app.route('/json', methods=['POST'])
def json():
    return format(request.get_json())

尽管JSON对象已过POST脚本,但脚本仍将“ None”返回给Postman。

非常感谢任何可以为我澄清这一点的人。我通常会尝试调试自己,但这确实让我感到迷惑了几个小时。我确定我做的事情确实很愚蠢!非常感谢!

2 个答案:

答案 0 :(得分:0)

我怀疑您不是从Postman发送有效载荷作为JSON。

它应该像这样:

enter image description here

然后,当您在Flask应用中执行request.json时,您应该会看到JSON。请注意,它不是request.json()

答案 1 :(得分:-1)

导入jsonify。希望这会有所帮助!q

https://kite.com/python/docs/flask.jsonify