ruamel.yaml的最新版本无法解析简单的流映射
问题描述:
在此处发布而不是Bitbucket,因为我真的不确定这是否是用户错误。一些简单的像这样升级到最新版本后,朗声道:"in"
和"out"
解决问题ruamel.yaml的最新版本无法解析简单的流映射
>>> from ruamel import yaml
>>> test_str = '{"in":{},"out":{}}'
>>> yaml.safe_load(test_str)
ruamel.yaml.parser.ParserError: while parsing a flow mapping
in "<byte string>", line 1, column 1:
{"in":{},"out":{}}
^(line: 1)
expected ',' or '}', but got '<scalar>'
in "<byte string>", line 1, column 6:
{"in":{},"out":{}}
^(line: 1)
插入空格之后。
答
这是一个在ruamel.yaml < 0.15.30中的错误。
令牌扫描器已经改变了一些微版本早,以便允许::
并?
发生在简单的标量(所要求的1.2规范,参见实施例7.10),和受影响的这一点,“紧凑JSON这些变化“, 句法。
一个解决办法,如果你不能升级ruamel.yaml
,这可能比改变你的所有YAML输入更容易,加载这个明确的YAML 1.1:
from ruamel import yaml
test_str = '{"in":{},"out":{}}'
yaml.safe_load(test_str, version="1.1")
感谢您的报告,这确实是一个错误。 – Anthon