如何设置yaml.dump选项以获取标量文字

时间:2016-02-15 08:17:03

标签: python yaml pyyaml

来自标量文字的

yaml.load()看起来像这样。

key: |
    line 1
    line 2

并将获得 {"key": "line1\nline2"}

如何将数据转储到具有相同标量文字的文件?

1 个答案:

答案 0 :(得分:0)

如果您从PyPI安装ruamel.yaml(我是作者的PyYAML增强版),您只需指定RoundTripParser / Dumper:

import sys
import ruamel.yaml as yaml

yaml_str = """\
# this is the key info
key: |
    line 1
    line 2
"""

data = yaml.load(yaml_str, Loader=yaml.RoundTripLoader)
yaml.dump(data, sys.stdout, Dumper=yaml.RoundTripDumper)

会给你:

# this is the key info
key: |
  line 1
  line 2

data将是ordereddict / OrderedDict的子类,其中附加了格式信息和注释,您可以在其中使用 你的程序是正常的。