JSON可使用 indent=None
(默认)以单行形式编写(对人类不可读),或者使用 ident=N
每个逗号后都带有换行符。
我想看到的是更紧凑但仍然漂亮的输出,类似于Common Lisp的漂亮打印。例如,
{
"cleanup":{
"cpu":6936.780000000001,
"wall":7822.319401979446
},
"finished":"2017-08-14 18:36:23",
"init":{
"cpu":1365.73,
"wall":1380.7802910804749
},
"job":"timings",
"run":{
"cpu":953.6700000000001,
"wall":8350.496850013733
},
"started":"2017-08-14 13:28:06"
}
我希望看到
{
"cleanup":{"cpu":6936.780000000001,"wall":7822.319401979446},
"finished":"2017-08-14 18:36:23",
"init":{"cpu":1365.73,"wall":1380.7802910804749},
"job":"timings",
"run":{"cpu":953.6700000000001,"wall":8350.496850013733},
"started":"2017-08-14 13:28:06"
}
类似于pprint
生成的结果。
compact=True
可能会让你达到一半的效果... - juanpa.arrivillagajson
模块不支持compact=True
。 - sdsjson.encoder
模块中_make_iterencode
函数中的两行if _indent is None
代码,然后在子类中替换JSONEncoder.iterencode
。不过需要大量复制粘贴。 - o11c