2017-08-14 49 views
1

在此處發佈而不是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) 

插入空格之後。

+1

感謝您的報告,這確實是一個錯誤。 – Anthon

回答

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")