如何为“获取类似格式的yaml”;“安全”;及;往返;
如何为“获取类似格式的yaml”;“安全”;及;往返;,yaml,ruamel.yaml,Yaml,Ruamel.yaml,ruamel.yaml根据使用的是safe还是往返representer,对简单但嵌套的字典进行不同的格式化 我不明白为什么不同的representer应该以不同的格式设置如此简单的字典,因此我想知道如何使saferepresenter看起来与以下示例中的往返相似: 从ruamel.yaml导入yaml 导入系统 数据={'data':{'interval':5,'compression':'3'},'player':{'ffmpeg':{'name':'me'} yaml=yaml(典型值为“
ruamel.yaml
根据使用的是safe
还是往返
representer,对简单但嵌套的字典进行不同的格式化
我不明白为什么不同的representer应该以不同的格式设置如此简单的字典,因此我想知道如何使safe
representer看起来与以下示例中的往返
相似:
从ruamel.yaml导入yaml
导入系统
数据={'data':{'interval':5,'compression':'3'},'player':{'ffmpeg':{'name':'me'}
yaml=yaml(典型值为“安全”)
yaml.dump(数据,系统标准输出)
这张照片
data: {compression: '3', interval: 5}
player:
ffmpeg: {name: me}
但是
yaml=yaml()
yaml.dump(数据,系统标准输出)
打印出更好的输出:
data:
interval: 5
compression: '3'
player:
ffmpeg:
name: me
如何获得打印相似性的safe
版本?安全模式的输出就是PyYAML,ruamel.yaml就是从该模式生成的
默认情况下,最初派生的“叶集合”采用流样式。
这比默认值的所有块样式输出更紧凑(typ=“rt”
),
这并不总是增加可读性。尤其是在总项目数量较少的情况下(因此总项目可以放在一个窗口中),
或者,当叶集合有许多项时(它们环绕在多行上)
所以往返默认为所有块样式的原因是因为我同意它看起来
更好。当然,当往返用于预期目的时
保留了每个系列的原始风格
差异是由YAML()
实例上的default\u flow\u style
属性造成的,对于安全模式和
对于“rt”
模式,要执行False
:
import sys
import ruamel.yaml
data = {'data': {'interval': 5, 'compression': '3'}, 'player': {'ffmpeg': {'name': 'me'}}}
yaml = ruamel.yaml.YAML(typ="safe")
yaml.default_flow_style = False
yaml.dump(data, sys.stdout)
其中:
data:
compression: '3'
interval: 5
player:
ffmpeg:
name: me
如果您将属性设置为True
,您将得到完全流式的输出