Python 为什么Flask';邮政';不返回简单的JSON对象?

Python 为什么Flask';邮政';不返回简单的JSON对象?,python,json,http,flask,request,Python,Json,Http,Flask,Request,我曾试图找到类似的问题(或文档),但收效甚微,因此如果有人能指出我在这里的错误方向,我将不胜感激 在Python3中,我使用Flask接收JSON的HTTP请求并返回它们 from flask import Flask, request app=Flask(__name__, template_folder='') @app.route('/json', methods=['POST']) def json(): return format(request) 我正在使用Postman

我曾试图找到类似的问题(或文档),但收效甚微,因此如果有人能指出我在这里的错误方向,我将不胜感激

在Python3中,我使用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”,那么它工作得非常好):

然后邮递员回答说:

<Request 'http://127.0.0.1:5000/json' [POST]>
该脚本将“None”返回给Postman,尽管有一个JSON对象被POST'ed'到它


非常感谢任何能为我澄清这一点的人。我通常试着自己调试,但这让我真的难堪了几个小时。我肯定我在做一些非常愚蠢的事情!非常感谢

我怀疑您没有从Postman以JSON的形式发送有效负载

应该是这样的:


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

OK,无论出于何种原因,json对象没有被解析为“application/json”,我修复了这个问题:

return format(request.get_json(force=True))
参数force=True将无论如何处理JSON


非常感谢大家的帮助!希望这有助于其他有点困惑的人…

我也尝试了request.data()和request.json(),但收效甚微。为了确认,您是否尝试过打印
request.json
?是否尝试过request.data.decode()?@user1579970我刚刚尝试运行您的示例,我发现没有问题。您在哪里看到“属性名中的无效字符”?request.json给出“null”。request.data.decode()给出“{\n\”test\:\“Hello World\”\n}”,这表示它已将JSON对象接收到数据中。我想我可以硬编码一种从.decode()提取数据的方法,但并不理想。现在我对为什么单独使用数据或get_json()不起作用很感兴趣。谢谢,turnip,奇怪的是我是。在发布之前,我绝对确定了这一点。如果我发现了什么,我会继续摆弄并报告。。。。
from flask import Flask, request
app=Flask(__name__, template_folder='')

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