如何以YAML格式打印嵌套字典

问题描述 投票:-1回答:3

给出一本带有字典的字典,我想一一打印所有内容。例如,字典是:

data = {'school': 'abc college',
 'class': {'A': 30, 'B': 25, 'C': 10},
 'student': {'A': {'Peter': 'boy'},
  'B': {'Mary': 'girl'},
  'C': {'Charles': 'boy'}}}

我想将其打印为:

school: abc college
class:
    A: 30
    B: 25
    C: 10
student:
    A:
        Peter: boy
    B:
        Mary: girl
    C: 
        Charles: boy

这意味着如果字典中有字典,我想先打印最深层的字典,然后再继续下一个元素,类似于深度优先搜索的顺序。

但是,字典的级别事先未知,因此似乎for循环不是一个好方法。我也尝试过iter,但是字典不是可迭代的。我不知道如何实现这一目标。谢谢!

python dictionary nested yaml pretty-print
3个回答
1
投票

您应该通过创建递归函数来解决此问题。


2
投票

此问题是使用递归的好机会:每当遇到字典值时,我们都会在此字典上再次调用该函数。


1
投票

如果您只想漂亮地打印,则可以尝试pprint

© www.soinside.com 2019 - 2024. All rights reserved.