当转储到yaml时,我应该向python字典添加什么来在某些键下生成新行?

2024-09-22 20:21:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: keyyamlvalue关键字outdump钥匙actual
2条回答

如果您将一个新行添加到一个键key,您将得到一个嵌入 换行符作为双引号标量 显式mapping key indicator character?):

? "\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

相关问题 更多 >