JSON is written either with indent=None
(default) as a single line (unreadable to a human eye) or with ident=N
with a newline after each comma.
What I would like to see is a more compact but still pretty output, similar to what Common Lisp pretty-printing does. E.g., instead of
{
"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"
}
I would like to see
{
"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"
}
similar to what pprint
produces.
compact=True
might get you half-way there... – Chaschasejson
module does not supportcompact=True
. – Dulosispprint
– Chaschaseif _indent is None
lines in_make_iterencode
in thejson.encoder
module, then replaceJSONEncoder.iterencode
in a subclass. Lots of copypasta though :( – Turret