使用 ruamel.yaml 添加引号

Adding quotes using ruamel.yaml

https://pypi.python.org/pypi/ruamel.yaml 更改日志中有一个条目: 0.11.12 (2016-07-06):

- added support for roundtrip of single/double quoted scalars using:
  ruamel.yaml.round_trip_load(stream, preserve_quotes=True)

使用 ruamel 我可以转换:

skip: Skip
show: 'Show'
remove: "Remove"
"info_on": "ON"

至:

skip: Skip
show: Show
remove: Remove
info_on: ON

ruamel 中是否有选项 add 而不是 preserve 引号导致:

"skip": "Skip"
"show": "Show"
"remove": "Remove"
"info_on": "ON"

您可以使用 dump() 选项 default_style='"':

import sys
import ruamel.yaml

yaml_str = """\
skip: Skip
show: 'Show'
remove: "Remove"
"info_on": "ON"
"""

data = ruamel.yaml.round_trip_load(yaml_str)

ruamel.yaml.round_trip_dump(data, sys.stdout, default_style='"')

以与派生 ruamel.yaml 的旧 PyYAML 相同的方式。