当转储到 yaml 时,我应该在我的 python 字典中添加什么以在某些键下生成一个新行?

What should I add to my python dictionary to generate a new line beneath certain keys when dumped to yaml?

yaml 转储器将密钥堆叠在一起,这使得它看起来很杂乱。我想在我的几个键之间添加一条新线以将它们分开。

d = {'key': value, 'key': value, 'key': value}
yaml.dump(d, out)

我试过在键中添加“\n”以在该键之前换行,但这不起作用。

d = {'key': value, '\nkey': value, 'key': value}

还是给 核心价值 核心价值 键:值

Desired:

    key: value

    key: value
    key: value

    Actual:
    key: value
    key: value
    key: value

如果您向密钥添加换行符 key,您将获得一个嵌入了 换行符,它被转储为双引号标量 显式 映射关键指标 字符 (?):

? "\nkey"

那肯定不是你想要的。

您需要做的是插入注释(空行由 与 ruamel.yaml 中的评论相同的机制),在适当的时候 在 dict 类数据结构中的位置 ruamel.yaml 用于 在往返时保留此类评论:

import sys
import ruamel.yaml

d = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

data = ruamel.yaml.comments.CommentedMap(d)
data.yaml_set_comment_before_after_key('key2', before='\n')

yaml = ruamel.yaml.YAML()
yaml.dump(data, sys.stdout)

给出:

key1: value1

key2: value2
key3: value3