我创建了两个应用程序:
将 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
- 用 latin-1 替换 ISO-8859-1 没有帮助
更新: 第 14443 行以(十六进制)开头:0xc 0x44 0x4c 0x56 0x36 0x32 ...
由于解析错误发生在第 14443 行的第 0 列中,因此错误是由 0xc 产生的