How to beautify JSON in Python? How to beautify JSON in Python? python python

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:

enter image description here