How to beautify JSON in Python?
From the command-line:
echo '{"one":1,"two":2}' | python -mjson.tool
which outputs:
{ "one": 1, "two": 2}
Programmtically, the Python manual describes pretty-printing JSON:
>>> import json>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4){ "4": 5, "6": 7}
Use the indent
argument of the dumps
function in the json module.
From the docs:
>>> import json>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4){ "4": 5, "6": 7}
A minimal in-python solution that colors json data supplied via the command line:
import sysimport jsonfrom pygments import highlight, lexers, formattersformatted_json = json.dumps(json.loads(sys.argv[1]), indent=4)colorful_json = highlight(unicode(formatted_json, 'UTF-8'), lexers.JsonLexer(), formatters.TerminalFormatter())print(colorful_json)
Inspired by pjson
mentioned above. This code needs pygments
to be installed.
Output example: