如何美观地打印嵌套的字典?

24 浏览
0 Comments

如何美观地打印嵌套的字典?

我如何使用Python漂亮地打印一个深度大约为4的字典?我尝试使用pprint()进行漂亮地打印,但它没有起作用:

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

我只想要一个缩进(\"\\t\")每个嵌套,这样我就可以得到像这样的东西:

key1
    value1
    value2
    key2
       value1
       value2

等等。

我该如何做到这一点?

admin 更改状态以发布 2023年5月21日
0
0 Comments

我不确定你希望格式看起来是什么样子,但你可以从这样的函数开始:

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))

0
0 Comments

我的第一个想法是JSON序列化器可能非常擅长嵌套字典,所以我会偷懒使用它:

>>> import json
>>> print(json.dumps({'a':2, 'b':{'x':3, 'y':{'t1': 4, 't2':5}}},
...                  sort_keys=True, indent=4))
{
    "a": 2,
    "b": {
        "x": 3,
        "y": {
            "t1": 4,
            "t2": 5
        }
    }
}

0