iShares SP 500 ETF 的 Excel 文件有什么问题?
What's wrong with iShares SP 500 ETF's Excel file?
我正在尝试解析 iShares SP 500 ETF's Excel file,它看起来像这样:
<?xml version="1.0"?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<ss:Styles>
<ss:Style ss:ID="Default">
<ss:Alignment ss:Horizontal="Left"/>
</ss:Style>
...
它似乎是一个旧的 XLS Excel 类型文件,但它是一个 XML 文件,但是 xml.etree.ElementTree
抱怨很多。
我试过:
import xml.etree.ElementTree as ET
tree = ET.parse(file_name)
并使用编码:
import xml.etree.ElementTree as ET
tree = ET.parse(file_name, parser=ET.XMLParser(recover=True))
import xml.etree.ElementTree as ET
tree = ET.parse(file_name, parser=ET.XMLParser(encoding='utf-8'))
错误:
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 1
rb = xlrd.open_workbook(file_name, encoding_override='utf-8')
print(rb)
错误:
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\xef\xbb\xbf\xef\xbb\xbf<?'
但是 none 似乎完全没有用...有人可以指导我正确的方向吗?
您的“XML”文件不是well-formed:
在XML声明之前有两个BOM字符。
要删除(至少)一个,请参阅Convert UTF-8 with BOM to UTF-8 with no BOM in Python
删除第 43 行的 &
或将其更改为 &
。
<ss:Data ss:Type="String">iShares Core S&P 500 ETF</ss:Data>
^
第 117,188 行的 &
同上。
如果不进行上述修复,您的文件将无法解析为 XML(因为从技术上讲它不是)。
经过以上修复后,您将可以解析为XML,Excel将可以打开:
另见
- Error: The processing instruction target matching "[xX][mM][lL]" is not allowed
我正在尝试解析 iShares SP 500 ETF's Excel file,它看起来像这样:
<?xml version="1.0"?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<ss:Styles>
<ss:Style ss:ID="Default">
<ss:Alignment ss:Horizontal="Left"/>
</ss:Style>
...
它似乎是一个旧的 XLS Excel 类型文件,但它是一个 XML 文件,但是 xml.etree.ElementTree
抱怨很多。
我试过:
import xml.etree.ElementTree as ET
tree = ET.parse(file_name)
并使用编码:
import xml.etree.ElementTree as ET
tree = ET.parse(file_name, parser=ET.XMLParser(recover=True))
import xml.etree.ElementTree as ET
tree = ET.parse(file_name, parser=ET.XMLParser(encoding='utf-8'))
错误:
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 1
rb = xlrd.open_workbook(file_name, encoding_override='utf-8')
print(rb)
错误:
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\xef\xbb\xbf\xef\xbb\xbf<?'
但是 none 似乎完全没有用...有人可以指导我正确的方向吗?
您的“XML”文件不是well-formed:
在XML声明之前有两个BOM字符。
要删除(至少)一个,请参阅Convert UTF-8 with BOM to UTF-8 with no BOM in Python
删除第 43 行的
&
或将其更改为&
。<ss:Data ss:Type="String">iShares Core S&P 500 ETF</ss:Data> ^
第 117,188 行的
&
同上。
如果不进行上述修复,您的文件将无法解析为 XML(因为从技术上讲它不是)。
经过以上修复后,您将可以解析为XML,Excel将可以打开:
另见
- Error: The processing instruction target matching "[xX][mM][lL]" is not allowed