尝试加载特殊字符时的ruamel.yaml ReaderError(非空白控件)

时间:2018-11-26 20:47:34

标签: python ruamel.yaml

尝试使用ruamel.yaml将big-list-of-naughty-strings加载到Python中(以测试API的字符集)。

除了2行:115和120(在json版本中为94和95)外,其他所有程序都正常加载。

在注释中,它们被描述为“非空白C0控件”和“非空白C1控件”。

示例:

>>> from ruamel.yaml import YAML
>>> ruamel_yaml = YAML()
>>> ruamel_yaml.load('\u000f')
...
ruamel.yaml.reader.ReaderError: unacceptable character #x000f: special characters are not allowed
  in "<unicode string>", position 0

想知道这可能是错误还是预期的行为。

1 个答案:

答案 0 :(得分:1)

您似乎没有参考YAML规范中的character set chapter

  

允许的字符范围明确排除了C0控制块#x0-#x1F(允许的TAB#x9,LF #xA和CR #xD除外),DEL#x7F,C1控制块#x80-# x9F(允许的NEL#x85除外),代理块#xD800-#xDFFF,#xFFFE和#xFFFF。

第115行是C0控件,第120行是C1控件,因此这些行不加载也就不足为奇了。