Python ElementTree XML IOError:[Errno 22]模式(“rb”)或filenam无效

2024-10-01 09:18:34 发布

您现在位置:Python中文网/ 问答频道 /正文

代码如下:

import xml.etree.cElementTree as ET
tree = ET.parse(r'https://apitest.batchbook.com/api/v1/people.xml?auth_token=GR5doLv88FrnLyLGIwok')

我收到错误消息:

^{pr2}$

但是,如果我在浏览器中打开上面的链接,并将其保存到XML文件中(人.xml),然后执行以下操作:

tree = ET.parse(r'C:\Users\Eric\Downloads\people.xml')
tree.getroot()

我得到的结果是:<;元素“people”位于0x00000000086AA420>

有什么线索可以解释为什么使用链接不起作用吗?谢谢:)


Tags: 代码httpsimportcomtreeparse链接as
1条回答
网友
1楼 · 发布于 2024-10-01 09:18:34

您的文件系统中的任何位置都没有该名称的文件。etree不明白这是一个真正的网址,即使有,也不能用它做任何事情。在

相反,你应该做一些类似的事情:

import xml.etree.cElementTree as ET
import urllib2, StringIO

page_with_xml = urllib2.urlopen(r'https://apitest.batchbook.com/api/v1/people.xml?auth_token=GR5doLv88FrnLyLGIwok')
io_xml = StringIO.StringIO()
io_xml.write(page_with_xml.read())
io_xml.seek(0)
tree = ET.parse(io_xml)

为了纠正这个事实etree.parse正在查找类似文件的对象。不是特别优雅,但它能完成任务。在

相关问题 更多 >