我有一个用jsonify创建的响应,我需要在该响应中添加额外的数据。这个是可能的吗?
我有:
from flask import make_response, jsonify
resp = make_response(jsonify({"data": {"person": {"name": "ko", "error": "not responding"}}}), 500)
...我需要做一些类似的事情:
resp.append(jsonify({"value":1}))因此,我可以在同一个json中同时返回数据和值。
发布于 2017-06-23 16:40:56
我建议在做出回应之前使用数据。在对数据调用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文档将是一个很好的起点。
发布于 2017-06-23 17:09:25
如前所述,最好不要修改response对象。准备数据,然后jsonify它并返回响应。但是,您仍然可以修改响应:
从flask导入json导入make_response,
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 resphttps://stackoverflow.com/questions/44716791
复制相似问题