2017-06-23 45 views
0

我有一個使用jsonify創建的響應,我需要在該響應中添加其他數據。這可能嗎?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

你就不能讓1個複雜的JSON?我相信HTTP請求只允許1個響應... – selten98

+3

爲什麼您在做出響應之前不將值插入數據字典? – stamaimer

回答

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它看起來並不像它真的想你一旦你做出迴應就編輯它。但是,如果您確實需要在創建響應對象後編輯它,那麼這裏的燒瓶文檔將是一個很好的開始。

0

正如已經說過的,最好不要修改響應對象。準備數據,然後jsonify它並返回響應。但是,你仍然可以修改響應:從瓶進口make_response

進口JSON ,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