python - ruamel.yaml ReaderError 尝试加载特殊字符时(非空白控件)
问题描述
尝试使用 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
想知道这是否可能是一个错误或预期的行为。
解决方案
看来您还没有查阅YAML 规范中的字符集章节:
允许的字符范围明确排除 C0 控制块 #x0-#x1F(TAB #x9、LF #xA 和 CR #xD 除外)、DEL #x7F、C1 控制块 #x80-#x9F(除了对于允许的 NEL #x85),代理块 #xD800-#xDFFF、#xFFFE 和 #xFFFF。
第 115 行是 C0 控件,第 120 行是 C1 控件,因此这些行没有加载也就不足为奇了。
推荐阅读
- c - 反向waitforsingleobject存在吗?
- typescript - “提交”事件侦听器生成的事件有哪些类型?
- git - Azure DevOps - 将主分支与过去的主分支进行比较
- python - 如何使用solve_ivp通过精确点?
- c# - Microsoft Dynamics CRM EasyRePro 自动化测试 Selenium 错误 - ElementClickInterceptedException
- codenameone - RuntimeException - 19 处的第二个字节错误
- vb.net - 一旦知道特定的变量类型,如何让 IntelliSense 更改列表成员?
- excel - 时间戳更新时 Excel 崩溃
- python - 如何在 Selenium Python 的 table/tbody 中找到每个元素的 click()?
- python - 重复搜索大型文本文件(800 MB)以查找某些数字的最有效方法是什么?