【发布时间】:2016-04-06 20:32:54
【问题描述】:
我在使用 flask.jsonify 函数从字典输入输出格式化的 json 响应时遇到了一点麻烦,如 here. 中所述
我的代码似乎返回的是 Response 对象,而不是我想要的格式化 json 对象。
我有
@app.route('/rparser', methods=['GET', 'POST'])
def rparser():
form = ParserForm(request.form)
if request.method=='POST':
result = jsonify(**dict)
return render_template('rparser.html', form=form, result=result)
else:
return render_template('rparser.html', form=form)
其中 dict 是调用函数返回的字典对象。
在我的模板中,我有:
(form up here)
{% if result %}
{{ result }}
{% endif %}
这是显示:
响应 135 字节 [200 OK]
如何让它返回我正在寻找的 json 表示?
【问题讨论】:
-
json.dumps有什么问题? -
@cricket_007 我希望显示漂亮打印的 json,而 json.dumps 不这样做
-
这里的
dict是什么? JSON 数据应该来自哪里? -
根据flask api,jsonify 确实返回一个响应对象,即您所看到的字符串。如果 JSON 是您想要查看的全部内容,您可以使用
return jsonify(...)。 -
@DanielRoseman dict 是通过调用另一个函数编译的 OrderedDict,该函数从同一页面上的表单中获取参数。这是字典的示例: OrderedDict([('name', 'Example'), ('reference_ranges', [OrderedDict([('descriptions', ['Follicular']), ('ranges', [OrderedDict( [('min', 22.0), ('max', 85.0), ('units', 'ng/dL')]), OrderedDict([('tag', 'SI'), ('min', 0.7 ), ('max', 2.5), ('units', 'mmol/L')])])])])])