首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsonify创建后追加对象

jsonify创建后追加对象
EN

Stack Overflow用户
提问于 2017-06-23 16:36:11
回答 2查看 1.4K关注 0票数 1

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

我有:

代码语言:javascript
复制
from flask import make_response, jsonify
resp = make_response(jsonify({"data": {"person": {"name": "ko", "error": "not responding"}}}), 500)
...

我需要做一些类似的事情:

代码语言:javascript
复制
resp.append(jsonify({"value":1}))

因此,我可以在同一个json中同时返回数据和值。

EN

回答 2

Stack Overflow用户

发布于 2017-06-23 16:40:56

我建议在做出回应之前使用数据。在对数据调用jsonify之前,它只是一个普通的python字典对象,您可以随心所欲地使用它:

代码语言:javascript
复制
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文档将是一个很好的起点。

票数 1
EN

Stack Overflow用户

发布于 2017-06-23 17:09:25

如前所述,最好不要修改response对象。准备数据,然后jsonify它并返回响应。但是,您仍然可以修改响应:

从flask导入json导入make_response,

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44716791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档