Python json.dumps(<val>) 输出缩小 json?

Python json.dumps(<val>) to output minified json?

有没有什么办法可以让 python 的 json.dumps(<val>) 以缩小的形式输出? (即去掉逗号、冒号等周围的多余空格)

您应该设置 separators 参数:

>>> json.dumps([1, 2, 3, {'4': 5, '6': 7}], separators=(',', ':'))
'[1,2,3,{"4":5,"6":7}]'

来自文档:

If specified, separators should be an (item_separator, key_separator) tuple. The default is (', ', ': ') if indent is None and (',', ': ') otherwise. To get the most compact JSON representation, you should specify (',', ':') to eliminate whitespace.

https://docs.python.org/3/library/json.html

https://docs.python.org/2/library/json.html

还有一个 ujson 库,它工作得更快,默认情况下会缩小 JSON。
它的 dumps 等价物没有 separators 参数,并且缺少更多功能,例如自定义 encoders/decoders,但我认为在这里值得一提。

>>> ujson.dumps([1,2,3,{'4': 5, '6': 7}])
'[1,2,3,{"4":5,"6":7}]'