如何使用YAML在映射映射中创建文本?在
我试图使用PyYAML将文本放入YAML中映射的映射中。基于YAML specs实现了映射的映射:
Mark McGwire: {hr: 65, avg: 0.278}
Sammy Sosa: {
hr: 63,
avg: 0.288
}
而保留换行符的文字是通过以下方式完成的:
^{pr2}$现在,我尝试将文字与映射的映射相结合,如下所示:
Sammy Sosa: {
hr: 63,
avg: 0.288,
stats: |
63 Home Runs
0.288 Batting Average
}
然后抛出错误:
yaml.scanner.ScannerError: while scanning for the next token
found character '|' that cannot start any token
in "test.yml", line 4, column 12
在YAML中,是否有另一种方法或方法可以将literals放入映射的映射中?在
你的“文字”更正式地称为literal block style scalar。除了block style之外还有{a3}。{{1>使用的是键流的值。在
在flow style you are not allowed to have block style内
,但这就是您试图对键
stats
的值进行的操作。除此之外,您还没有对文本标量进行足够的缩进。在通过删除匹配的
{
、}
和尾随,
,将流样式映射更改为块样式。对齐键(块样式中需要)并适当地缩进文本标量(即比stats
的开始列多)。在这是有效的YAML,相当于您想要实现的目标:
块样式映射中的第一个示例流样式映射也可以重写为块样式映射中的块样式映射,如下所示:
^{pr2}$在这方面没有什么区别,但是您也应该知道您使用的是yaml1.2规范(从2009年开始),但是PyYAML Python库只支持大多数旧的yaml1.1(从2005年开始)。
相关问题 更多 >
编程相关推荐