当转储到 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
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