Python jsonify/pretty打印瓶用JSON
我正在瓶子里制作一个JSON输出API,我想漂亮地打印JSON。现在,如果我写Python jsonify/pretty打印瓶用JSON,python,json,bottle,pretty-print,Python,Json,Bottle,Pretty Print,我正在瓶子里制作一个JSON输出API,我想漂亮地打印JSON。现在,如果我写返回json.dumps(data,indent=4,default=json\u util.default),它仍然会在浏览器中打印它,没有缩进或换行(但它确实正确地打印到我的终端) 我的问题基本上是这个瓶子的版本: 但我不能使用这个答案,因为(据我所知)瓶子里没有jsonify函数。是否有一个明显的解决方案,或者我应该尝试对Flask的jsonify进行反向工程?谢谢@Felk评论: 将resopnse.cont
返回json.dumps(data,indent=4,default=json\u util.default)
,它仍然会在浏览器中打印它,没有缩进或换行(但它确实正确地打印到我的终端)
我的问题基本上是这个瓶子的版本:
但我不能使用这个答案,因为(据我所知)瓶子里没有jsonify
函数。是否有一个明显的解决方案,或者我应该尝试对Flask的jsonify进行反向工程?谢谢@Felk评论:
将resopnse.content\u type
设置为application/json
def result():
response.content_type='application/json'
return data
或
def result():
返回{}.format(json.dumps)(数据,
缩进=4,默认值=json(使用默认值)
这两种方法都适用于您。我创建了这个插件,以扩展由瓶子完成的现有JSON转储
我喜欢在其他返回实际页面的模板/视图函数中使用我的JSON/API函数返回的字典。调用json.dumps
或制作包装会破坏这一点,因为它们将返回转储的str
,而不是dict
使用瓶子json的示例:
从瓶子导入瓶子
从瓶子中输入JSONPrettyPlugin
app=瓶子(autojson=False)
安装(JSONPrettyPlugin(indent=2,pretty\u production=True))
@app.get(“/”)
def瓶api测试()
返回{
“状态”:“确定”,
“代码”:200,
“消息”:[],
“结果”:{
“测试”:{
“工作”:正确
}
}
}
#现在,您可以使用非常格式化的JSON
#并且仍然在模板/视图函数中使用dict
#@app.get(“/page”)
#@view('索引')
#def瓶_索引():
#返回瓶\u api\u测试()
app.run()
默认情况下,浏览器可能会将文本解释为HTML,不会打印\n
及其连续空格。要么将JSON包装在
中,要么将内容类型设置为application/JSON
是的,设置响应。内容类型是一种方法。伙计,我知道手动设置内容类型显然是不合适的。谢谢如果有人转移到一个答案,我会接受它。
def result():
return '<pre>{}</pre>'.format(json.dumps(data,
indent=4, default=json_util.default))