首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ruamel.yaml:修改ruamel.yaml(),在最开始添加额外的'-‘

ruamel.yaml:修改ruamel.yaml(),在最开始添加额外的'-‘
EN

Stack Overflow用户
提问于 2017-11-27 17:54:47
回答 1查看 987关注 0票数 0

我正在使用ruamel.yaml库将字典转储到yaml文件中。然而,它的行为并不像我希望的那样。

我怎样才能得到:

代码语言:javascript
复制
---
- a: 
    - foo: bar
    - bar: foo

而不是:

代码语言:javascript
复制
a:
    - foo: bar
    - bar: foo

使用yaml.dump()

我从以下位置提取数据:

代码语言:javascript
复制
data = {
    'a': [
         {'foo':'bar'},
         {'bar':'foo'}
       ]
     }

任何其他具有相同功能的库都可以提交建议书。

EN

回答 1

Stack Overflow用户

发布于 2017-11-27 18:13:18

您要查找的是在YAML实例上设置explicit_start = True。此外,如果您想要- a而不仅仅是第二行上的a,则需要使顶级列表成为列表:

代码语言:javascript
复制
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)

提供:

代码语言:javascript
复制
---
- a:
  - foo: bar
  - bar: foo
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47508088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档