繁体   English   中英

ruamel.yaml:修改dump()以在开始时添加额外的“-”

[英]ruamel.yaml: modify dump() to add extra '-' at the very start

我正在使用ruamel.yaml库将字典转储到yaml文件中。 但是,它的行为并不符合我的期望。

我如何获得:

---
- a: 
    - foo: bar
    - bar: foo

代替:

a:
    - foo: bar
    - bar: foo

yaml.dump()

我正在从中提取数据:

data = {
    'a': [
         {'foo':'bar'},
         {'bar':'foo'}
       ]
     }

具有相同功能的任何其他库均已开放供投标。

您正在寻找的是在YAML实例上设置explicit_start = True 此外,您需要做的顶级如果你想有一个列表- a ,而不是只是a在第二行:

import sys
import ruamel.yaml

yaml_str = """\
---
-a:
    -foo: bar
    -bar: foo
"""

data = [{
    'a': [
         {'foo':'bar'},
         {'bar':'foo'}
       ]
     }]

yaml = ruamel.yaml.YAML()
yaml.explicit_start = True
yaml.dump(data, sys.stdout)

给出:

---
- a:
  - foo: bar
  - bar: foo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM