我希望能够转储一个字典,其中包含我希望在块样式中具有的长字符串以便于阅读.例如:
foo: |
this is a
block literal
bar: >
this is a
folded block
Run Code Online (Sandbox Code Playgroud)
PyYAML支持使用这种样式加载文档,但我似乎找不到以这种方式转储文档的方法.我错过了什么吗?
我需要打开一个YAML文件,其中包含别名:
defaults: &defaults
foo: bar
zip: button
node:
<<: *defaults
foo: other
Run Code Online (Sandbox Code Playgroud)
这显然扩展到了一个等效的YAML文档:
defaults:
foo: bar
zip: button
node:
foo: other
zip: button
Run Code Online (Sandbox Code Playgroud)
其中YAML::load把它读成.
我需要在这个YAML文档中设置新密钥,然后将其写回磁盘,尽可能保留原始结构.
我看过YAML :: Store,但这完全破坏了别名和锚点.
是否有任何可用的东西:
thing = Thing.load("config.yml")
thing[:node][:foo] = "yet another"
Run Code Online (Sandbox Code Playgroud)
将文档保存为:
defaults: &defaults
foo: bar
zip: button
node:
<<: *defaults
foo: yet another
Run Code Online (Sandbox Code Playgroud)
?
我选择使用YAML,因为它很好地处理了这个别名,但是编写包含别名的YAML在现实中看起来有点像一个看起来很暗淡的游戏场.
我在散列中有很长的字符串值,希望在YAML中以文字块样式(以>或开头的块|)打印,而不是以行内字符串的形式打印。打电话时有办法强制执行此操作#to_yaml吗?
文字块样式的示例:
---
this: |
Foo
Bar
Run Code Online (Sandbox Code Playgroud)