Python - How To Pretty Print a JSON File in Python

ID : 227

viewed : 218

Tags : PythonPython JSON

vote vote


The content of JSON file could be messy if you read it to the string or load it.

For example, in one JSON file ,

[{"foo": "Etiam", "bar": ["rhoncus", 0, "1.0"]}] 

If you load and then print it.

import json  with open(r'C:\test\test.json', 'r') as f:     json_data = json.load(f)      print(json_data) 
[{'foo': 'Etiam', 'bar': ['rhoncus', 0, '1.0']}] 

The result is well readable compared to the standard format we normally see.

[   {     "foo": "Etiam",     "bar": [       "rhoncus",       0,       "1.0"     ]   } ] 

json.dumps Method

json.dumps() function serializes the given obj to a JSON formatted str.

We need to give a positive integer to the keyword parameter indent in the json.dumps() function to pretty print the obj with the given indent level. If ident is set to be 0, it will only insert new lines.

import json  with open(r'C:\test\test.json', 'r') as f:     json_data = json.load(f)      print(json.dumps(json_data, indent=2)) 
[   {     "foo": "Etiam",     "bar": [       "rhoncus",       0,       "1.0"     ]   } ] 

pprint Method

pprint module gives the capability to pretty print Python data structures. pprint.pprint pretty prints a Python object to a stream followed by a newline.

import json import pprint  with open(r'C:\test\test.json', 'r') as f:     json_data =     json_data = json.loads(json_data)      pprint.pprint(json_data) 

The JSON file data content will be pretty printed. And you could also define the indent by assigning indent parameter.

pprint.pprint(json_data, indent=2) 

pprint treats single ' and double quotes " identically, but JSON only uses ", therefore, the pprinted JSON file content couldn’t be directly saved to a file.

Otherwise, the new file will not be parsed as valid JSON format.

  • Related HOW TO?