我使用的是ruamel.yaml(0.15.37),其数据结构如下:
- !Message
Name: my message
Messages:
- !Message
name: InputMsg1
- !Variable
Name: control_word
Length: 8
Type: Signed
Unit: % # ruamel parser erro
如果我读了YAML文件,我会收到错误
文件“_ruamel_yaml.pyx”,第904行,in _ruamel_yaml.CParser._parse_next_event(ext / _ruamel_yaml.c:12818)ruamel.yaml.scanner.ScannerError:扫描下一个令牌时 找到无法启动任何令牌的字符
如果我从任何其他角色开始,则不会产生任何错误。
- !Message
Name: my message
Messages:
- !Message
name: InputMsg1
- !Variable
Name: control_word
Length: 8
Type: Signed
Unit: a % # no parser erro
我也试过%
答案 0 :(得分:0)
百分号是indicator character,那些无法启动普通标量。所以你必须引用百分号:
Unit: "%"
或
Unit: '%'
(你也可以把它作为一个文字块标量:
Unit: |
%
或折叠标量,但我认为这不是更好的可读性。)
由于&
也是一个指针字符,它会抛出相同的错误,但你似乎(错误地)假设你可以在YAML中进行HTML转义(你不能)。