ruamel.yaml.round_trip_dump预期为4,但发现2(缩进)
代码: 如果我增加ruamel.yaml.round_trip_dump预期为4,但发现2(缩进),yaml,ruamel.yaml,Yaml,Ruamel.yaml,代码: 如果我增加 foo.yaml|10 col 3 error| wrong indentation: expected 4 but found 2 (indentation) 它后面的值(电子邮件、公司、id、时区)不跟随其缩进 我的消息来源是不是错了?我能解决这个问题吗?ruamel模块很棒,我可以通过编程方式添加值,但我似乎无法在输出中获得有效的YAML。您的输入在(嵌套的)块映射上有四个位置缩进,这是项目负责人的值,在序列上有六个缩进,这是提交人的值,虚线偏移量为四(在序列中,缩进
foo.yaml|10 col 3 error| wrong indentation: expected 4 but found 2 (indentation)
它后面的值(电子邮件、公司、id、时区)不跟随其缩进
我的消息来源是不是错了?我能解决这个问题吗?ruamel模块很棒,我可以通过编程方式添加值,但我似乎无法在输出中获得有效的YAML。您的输入在(嵌套的)块映射上有四个位置缩进,这是
项目负责人的值,在序列上有六个缩进,这是提交人的值,虚线偏移量为四(在序列中,缩进从序列元素的开头开始计算)
如果您像以前那样使用旧API,这确实会出错,但是使用新API(以及适当的值),您可以:
block_seq_indent = 4
导入系统
进口ruamel.yaml
从cStringIO导入StringIO
yaml_str=''\
---
项目:“”
项目负责人:&ptl
名称:“”
公司:''
电子邮件:“”
id:“”
时区:“”
主要联系人:*ptl
提交人:
-哇。非常感谢你!
foo.yaml|10 col 3 error| wrong indentation: expected 4 but found 2 (indentation)
block_seq_indent = 4
import sys
import ruamel.yaml
from cStringIO import StringIO
yaml_str = '''\
---
project: ''
project_lead: &ptl
name: ''
company: ''
email: ''
id: ''
timezone: ''
primary_contact: *ptl
committers:
- <<: *ptl
- name: ''
email: ''
company: ''
id: ''
timezone: ''
- name: ''
email: ''
company: ''
id: ''
timezone: ''
'''
yaml = ruamel.yaml.YAML()
yaml.preserve_quotes = True
yaml.indent(mapping=4, sequence=6, offset=4)
yaml.explicit_start = True
data = yaml.load(yaml_str)
yaml.dump(data, sys.stdout)
buf = StringIO()
yaml.dump(data, buf)
assert buf.getvalue() == yaml_str