Csv ElementTree.ParseError:格式不正确(无效令牌)

Csv ElementTree.ParseError:格式不正确(无效令牌),csv,encoding,python-3.x,xml-parsing,Csv,Encoding,Python 3.x,Xml Parsing,我创建了两个应用程序: 将csv(以拉丁语1编码)转换为xml 将以前的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, pa

我创建了两个应用程序:

  • 将csv(以拉丁语1编码)转换为xml

  • 将以前的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文件加载/解析到ElementTree中

错误消息:

    "/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
tr -dc '[\011\012\015\040-\176\200-\377]' < input.xml > output.xml
注意:

  • 每个文件都用拉丁语-1/ISO-8859-1编码
  • CSV文件的大小约为1GB
  • 我使用PythonV3.3
  • 用拉丁语-1替换ISO-8859-1没有帮助
更新: 第14443行以(十六进制)开头:0xc 0x44 0x4c 0x56 0x36 0x32


由于第14443行第0列出现解析错误,因此错误由0xc产生。

解决方案:

    "/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
tr -dc '[\011\012\015\040-\176\200-\377]' < input.xml > output.xml
tr-dc'[\011\012\015\040-\176\200-\377]output.xml

这不是一个最佳解决方案,因为我们创建了另一个(大)文件。

了解第14443行中的内容会有所帮助。。。