"创建后追加对象的jsonify"

2024-04-27 03:39:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用jsonify创建的响应,我需要在该响应中添加额外的数据。这可能吗?在

我有:

from flask import make_response, jsonify
resp = make_response(jsonify({"data": {"person": {"name": "ko", "error": "not responding"}}}), 500)
...

我需要做些类似的事情:

^{pr2}$

所以我可以在同一个json中返回数据和值。在


Tags: 数据namefromimportflaskdatamakeresponse
2条回答

我建议在做出反应之前先处理数据。在对数据调用jsonify之前,它只是一个普通的python字典对象,您可以随意使用它:

data = {"data": {"person": {"name": "ko", "error": "not responding"}}}

data['value'] = 1
# and any other processing here

make_response(jsonify(data), 500)

编辑:看一下flask Response object docs它看起来并不是真的希望你在做出响应后编辑它。但是,如果您确实需要在创建响应对象之后编辑它,那么这里的flask文档将是一个很好的起点。在

正如已经说过的,最好不要修改响应对象。准备数据,然后jsonify并返回响应。但是,您仍然可以修改响应:

导入json 来自flask import make_response,jsonify

resp = make_response(jsonify({"data": {"person": {"name": "ko", "error": "not responding"}}}), 500)
data = json.loads(response.get_data())
# If you use python3 then add decode('utf-8') at the end.
# data = json.loads(response.get_data().decode('utf-8'))
data['value'] = 1
resp.set_data(json.dumps(data))
return resp

相关问题 更多 >