Python-如何在Flask中获取POST JSON?
我正在尝试使用Flask构建一个简单的API,现在我想在其中读取一些POSTed JSON
。我使用Postman Chrome
扩展程序进行POST
,而我发布的JSON
就是{"text":"lalala"}
。我尝试使用以下方法读取JSON:
@app.route('/api/add_message/<uuid>', methods=['GET', 'POST'])def add_message(uuid):
content = request.json
print content
return uuid
在浏览器上,它可以正确返回我放入GET中的UUID,但是在控制台上,它只是打印出来None
(我希望它可以在其中打印出来{"text":"lalala"}
。有人知道我如何从Flask
方法中获取发布的JSON
吗?
回答:
首先,该.json属性是一个委托给request.get_json()method
的属性,该属性记录了您None在此处看到的原因。
您需要将请求内容类型设置为,application/json以使.json属性和.get_json()
方法(不带参数)起作用,None否则两者都会产生这种情况。请参阅Flask Request文档:
如果mimetype表示JSON(包含application / json
,请参见is_json(
)),则它将包含已解析的JSON数据,否则为None。
您可以request.get_json()
通过向其传递force=True
关键字参数来告知跳过内容类型要求。
请注意,如果此时引发异常(可能导致400 Bad Request
响应),则您的JSON 数据无效。它在某种程度上畸形;您可能需要使用JSON验证程序进行检查。
以上是 Python-如何在Flask中获取POST JSON? 的全部内容, 来源链接: utcz.com/qa/435368.html