gpt4 book ai didi

Python ElementTree XML IOError : [Errno 22] invalid mode ('rb' ) or filename

转载 作者:行者123 更新时间:2023-11-30 23:26:27 27 4
gpt4 key购买 nike

使用以下代码:

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

我收到错误消息:

IOError                                   Traceback (most recent call last)
<ipython-input-10-d91d452da3e7> in <module>()
----> 1 tree = ET.parse(r'https://apitest.batchbook.com/api/v1/people.xml?auth_token=GR5doLv88FrnLyLGIwok')

<string> in parse(source, parser)

<string> in parse(self, source, parser)

IOError: [Errno 22] invalid mode ('rb') or filename: 'https://apitest.batchbook.com/api/v1/people.xml?auth_token=GR5doLv88FrnLyLGIwok'

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

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

我得到结果:

关于为什么使用该链接不起作用的任何线索?谢谢:)

最佳答案

您的文件系统中的任何位置都没有该名称的文件。 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 正在寻找类似文件的对象的事实。不是特别优雅,但它可以完成工作。

关于Python ElementTree XML IOError : [Errno 22] invalid mode ('rb' ) or filename,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22505922/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com