jsonify/pretty-print JSON 瓶
jsonify/pretty-print JSON for Bottle
我正在 Bottle 中制作一个 JSON 输出 API,我想漂亮地打印 JSON。现在,如果我写 return json.dumps(data, indent=4, default=json_util.default)
,它仍然会在没有缩进或换行的情况下将其打印到我的浏览器中(但它确实会正确地打印到我的终端中)。
我的问题基本上是这个的 Bottle 版本:
Flask Display Json in a Neat Way
但我不能使用答案,因为(据我所知)Bottle 中没有 jsonify
函数。有没有明显的解决方案,或者我应该尝试对 Flask 的 jsonify
?
进行逆向工程
感谢@Felk 评论:
将 resopnse.content_type
设置为 application/json
。
def result():
response.content_type='application/json'
return data
或
def result():
return '<pre>{}</pre>'.format(json.dumps(data,
indent=4, default=json_util.default))
两者都适合你。
我创建了 bottle-json-pretty 插件来扩展 Bottle 完成的现有 JSON 转储。
我喜欢能够在 return 实际页面的其他 template/view 功能中使用由我的 Bottle JSON/API 功能编辑的词典 return。调用 json.dumps
或制作包装器会破坏此操作,因为它们会 return 转储 str
而不是 dict
.
使用 bottle-json-pretty 的示例:
from bottle import Bottle
from bottle_json_pretty import JSONPrettyPlugin
app = Bottle(autojson=False)
app.install(JSONPrettyPlugin(indent=2, pretty_production=True))
@app.get('/')
def bottle_api_test():
return {
'status': 'ok',
'code': 200,
'messages': [],
'result': {
'test': {
'working': True
}
}
}
# You can now have pretty formatted JSON
# and still use the dict in a template/view function
# @app.get('/page')
# @view('index')
# def bottle_index():
# return bottle_api_test()
app.run()
我正在 Bottle 中制作一个 JSON 输出 API,我想漂亮地打印 JSON。现在,如果我写 return json.dumps(data, indent=4, default=json_util.default)
,它仍然会在没有缩进或换行的情况下将其打印到我的浏览器中(但它确实会正确地打印到我的终端中)。
我的问题基本上是这个的 Bottle 版本: Flask Display Json in a Neat Way
但我不能使用答案,因为(据我所知)Bottle 中没有 jsonify
函数。有没有明显的解决方案,或者我应该尝试对 Flask 的 jsonify
?
感谢@Felk 评论:
将 resopnse.content_type
设置为 application/json
。
def result():
response.content_type='application/json'
return data
或
def result():
return '<pre>{}</pre>'.format(json.dumps(data,
indent=4, default=json_util.default))
两者都适合你。
我创建了 bottle-json-pretty 插件来扩展 Bottle 完成的现有 JSON 转储。
我喜欢能够在 return 实际页面的其他 template/view 功能中使用由我的 Bottle JSON/API 功能编辑的词典 return。调用 json.dumps
或制作包装器会破坏此操作,因为它们会 return 转储 str
而不是 dict
.
使用 bottle-json-pretty 的示例:
from bottle import Bottle
from bottle_json_pretty import JSONPrettyPlugin
app = Bottle(autojson=False)
app.install(JSONPrettyPlugin(indent=2, pretty_production=True))
@app.get('/')
def bottle_api_test():
return {
'status': 'ok',
'code': 200,
'messages': [],
'result': {
'test': {
'working': True
}
}
}
# You can now have pretty formatted JSON
# and still use the dict in a template/view function
# @app.get('/page')
# @view('index')
# def bottle_index():
# return bottle_api_test()
app.run()