Ada*_*tan 4 python json minify flask
Flask提供了方便的jsonify()
功能,它从Python变量返回一个JSON对象:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def json_hello():
return jsonify({x:x*x for x in range(5)}), 200
if __name__ == "__main__":
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
哪个回报:
{
"0": 0,
"1": 1,
"2": 4,
"3": 9,
"4": 16
}
Run Code Online (Sandbox Code Playgroud)
(PS - 注意从int到string的转换以符合JSON).
这种缩进的格式对于长输出是浪费的,我更喜欢缩小版本:
{"1": 1, "0": 0, "3": 9, "2": 4, "4": 16}
Run Code Online (Sandbox Code Playgroud)
如何从Flask中获得缩小版本的JSON jsonify()
?
rob*_*bru 13
除了另一个答案之外JSONIFY_PRETTYPRINT_REGULAR
,您还可以通过扩展flask的jsonencoder来消除列表元素之间的空格,如下所示:
from flask import Flask
from flask.json import JSONEncoder
class MiniJSONEncoder(JSONEncoder):
"""Minify JSON output."""
item_separator = ','
key_separator = ':'
app = Flask(__name__)
app.json_encoder = MiniJSONEncoder
app.config['JSONIFY_PRETTYPRINT_REGULAR'] = False
Run Code Online (Sandbox Code Playgroud)
为默认值item_separator
,并key_separator
各有一个尾随的空间,因此通过重写他们这样,你从输出中删除那些空间.
(严格来说,我想你可以在默认情况下设置这些值,JSONEncoder
但我需要这种方法,因为我不得不JSONEncoder.default()
因其他原因而过载)
归档时间: |
|
查看次数: |
7598 次 |
最近记录: |