【发布时间】:2013-04-05 07:38:10
【问题描述】:
我创建了两个应用程序:
-
将 csv(以 latin-1 编码)转换为 xml
import xml.etree.ElementTree as xml xml.ElementTree(xmlData).write(xmlFile, encoding='ISO-8859-1') -
将以前的xml加载到我的数据库(mysql)
-
没有解析器
from xml.etree import ElementTree as etree etree.parse(xmlFile) -
解析器
from xml.etree import ElementTree as etree myparser = etree.XMLParser(encoding='ISO-8859-1') etree.parse(xmlFile, parser=myparser)
-
加载 CSV 文件并将其转换为 XML 文件有效。
问题:我无法将 XML 文件加载/解析到 Elementree 中
错误信息:
"/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/xml/etree/ElementTree.py", line 1726, in parse
parser.feed(data)
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 14443, column 0
注意:
- 每个文件都以 latin-1/ISO-8859-1 编码
- CSV 文件的大小约为 1GB
- 我使用python v3.3
- 将 ISO-8859-1 替换为 latin-1 没有帮助
更新: 第 14443 行以(十六进制)开头:0xc 0x44 0x4c 0x56 0x36 0x32 ...
由于第 14443 行第 0 列出现解析错误,因此错误是由 0xc 产生的
【问题讨论】:
-
了解第 14443 行的内容会有所帮助...
标签: csv encoding python-3.x xml-parsing