jsonify创建后附加对象

时间:2017-06-23 08:36:11

标签: python json flask

我有一个用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中返回数据和值。

2 个答案:

答案 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