Search code examples
pythondictionary

How to pretty print nested dictionaries?


How can I pretty print a dictionary with depth of ~4 in Python? I tried pretty printing with pprint(), but it did not work:

import pprint 
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(mydict)

I simply want an indentation ("\t") for each nesting, so that I get something like this:

key1
    value1
    value2
    key2
       value1
       value2

etc.

How can I do this?


Solution

  • I'm not sure how exactly you want the formatting to look like, but you could start with a function like this:

    def pretty(d, indent=0):
       for key, value in d.items():
          print('\t' * indent + str(key))
          if isinstance(value, dict):
             pretty(value, indent+1)
          else:
             print('\t' * (indent+1) + str(value))