如何用新行分隔yaml.dump key:value对?

时间:2016-07-28 17:48:24

标签: python yaml

我试图让yaml转储每个键:在一个单独的行上的值对。是否有本地选项可以做到这一点?我试过了line_break,但无法让它发挥作用。

这是一个代码示例:

import yaml

def test_yaml_dump():

    obj = {'key0': 1, 'key1': 2}

    with open('test.yaml', 'w') as tmpf:
        yaml.dump(obj, tmpf, line_break=0)

输出结果为:

{key0: 1, key1: 2}

我希望它是:

{key0: 1, 
key1: 2}

1 个答案:

答案 0 :(得分:1)

如果将参数default_flow_style=False添加到dump,则输出将为:

key1: 2
key0: 1

(所谓的块样式)。这是将Python dicts转储为YAML映射的更易读的方法。在ruamel.yaml中,这是使用ruamel.yaml.round_trip_dump()时的默认设置。

import sys
import ruamel.yaml as yaml

obj = dict(key0=1, key1=2)
yaml.round_trip_dump(obj, sys.stdout)