YAML - 在新文档中保留文本格式
YAML - keep text formatting in new document
我有:
a: some meta info
b: more meta info
c: actual nicely
formatted text that
has line breaks
我希望通过使用文档分隔符将 c
移动到新的 YAML 文档 ---
a: some meta info
b: more meta info
---
actual nicely
formatted text that has line breaks
and so on
但是当我使用第二种选择时,我会丢失格式,比如换行等。
有没有办法可以使用后一种 YAML 方法格式并保留换行符?
我目前正在使用 ruamel.yaml 库来读取这个 yaml 和下面的函数来加载我的文件。
yaml.load_all(f, Loader=yaml.Loader)
如果您希望换行符位于您加载的值中,我建议将第二个文档设为文字样式标量。
如果你有 input.yaml
:
a: some meta info
b: more meta info
--- |
actual nicely
formatted text that
has line breaks
然后这个程序:
from pathlib import Path
import ruamel.yaml
path_name = Path('input.yaml')
yaml = ruamel.yaml.YAML()
for data in yaml.load_all(path_name):
print(repr(data))
给出:
ordereddict([('a', 'some meta info'), ('b', 'more meta info')])
'actual nicely\nformatted text that\nhas line breaks\n'
请注意,一些 YAML 库确实(错误地)假设文档根级别的文字样式标量需要缩进。
我有:
a: some meta info
b: more meta info
c: actual nicely
formatted text that
has line breaks
我希望通过使用文档分隔符将 c
移动到新的 YAML 文档 ---
a: some meta info
b: more meta info
---
actual nicely
formatted text that has line breaks
and so on
但是当我使用第二种选择时,我会丢失格式,比如换行等。
有没有办法可以使用后一种 YAML 方法格式并保留换行符?
我目前正在使用 ruamel.yaml 库来读取这个 yaml 和下面的函数来加载我的文件。
yaml.load_all(f, Loader=yaml.Loader)
如果您希望换行符位于您加载的值中,我建议将第二个文档设为文字样式标量。
如果你有 input.yaml
:
a: some meta info
b: more meta info
--- |
actual nicely
formatted text that
has line breaks
然后这个程序:
from pathlib import Path
import ruamel.yaml
path_name = Path('input.yaml')
yaml = ruamel.yaml.YAML()
for data in yaml.load_all(path_name):
print(repr(data))
给出:
ordereddict([('a', 'some meta info'), ('b', 'more meta info')])
'actual nicely\nformatted text that\nhas line breaks\n'
请注意,一些 YAML 库确实(错误地)假设文档根级别的文字样式标量需要缩进。