【发布时间】:2017-03-25 20:48:15
【问题描述】:
如何处理无效字符以便能够在 Python 中解析数据?
我目前正在使用 REST API 从生成 XML 格式数据的源中获取数据。但是 XML 数据包含以下字符:¿¿
在尝试验证数据时,此时我收到错误消息:
字符 0x0 超出允许范围。
因此我无法解析这些数据。我不确定如何编码这些数据。我该怎么做才能解决这个问题?
【问题讨论】:
标签: python xml rest xml-parsing
如何处理无效字符以便能够在 Python 中解析数据?
我目前正在使用 REST API 从生成 XML 格式数据的源中获取数据。但是 XML 数据包含以下字符:¿¿
在尝试验证数据时,此时我收到错误消息:
字符 0x0 超出允许范围。
因此我无法解析这些数据。我不确定如何编码这些数据。我该怎么做才能解决这个问题?
【问题讨论】:
标签: python xml rest xml-parsing
0x0(又名 NUL)不是allowed character in XML:
[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
因此,您的数据不是 XML,任何符合标准的 XML 处理器都必须报告错误,例如您收到的错误。
在将数据与任何 XML 库一起使用之前,您必须手动或自动将其视为 文本,而不是 XML,,从而通过删除任何非法字符来修复数据。
对于 Python,请参阅Removing control characters from a string in python 以获取有关如何从字符串中删除 NUL 的提示。这必须在将数据视为 XML 之前完成。
【讨论】: