我有一个用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中返回数据和值。
答案 0 :(得分:0)
我建议在做出回复之前使用数据。在对数据调用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它看起来并不像你真的想要在做出回复后编辑它。但是,如果你真的需要在创建它之后编辑响应对象,那么这里的文档将是一个很好的起点。
答案 1 :(得分:0)
正如已经说过的,最好不要修改响应对象。准备数据,然后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