从API响应解析XML

2024-04-29 11:30:56 发布

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

我已经尝试了几个小时从imgur API获取响应。我在终端中得到了XML,但我不知道如何获取和解析它。这是我的密码。

c = pycurl.Curl()
values = [
          ("key", "Super Secret API Number"),
          ("image", (c.FORM_FILE, "pic.jpg"))]

c.setopt(c.URL, "http://api.imgur.com/2/upload.xml")
c.setopt(c.HTTPPOST, values)
c.perform()
c.close()

我是个大Python迷,这是我第一次。Python处女。我读到你可以用ElementTree解析xml,但是我找不到任何很酷的文档。

希望你能帮助我。谢谢。


Tags: keyapi终端密码numbersecretxmlcurl
2条回答

将来自imgur-api的响应存储到一个文件中。而不需要使用xml解析器来解析从Imgur-API获得的xml响应/文件。

有很多选项可用,比如lxmlBeautifulSoup

下面是一个如何将lxmlXPath expressions一起使用的示例。

from lxml import etree


xml = """<foo>baz!</foo>"""

>>> xml = """<foo>baz!</foo>"""
>>> xp = etree.fromstring(xml)
>>> values = xp.xpath("//foo/text()")
>>> values
['baz!']

如果需要分析xml文件:

# parse from file
et = etree.parse(source_xml)
value = et.xpath("your xpath xpr here")

如果需要直接从url解析

# parse from URL
etree.parse("http://example.com/somefile.xml")

对于,XPath使用firefox的firebug扩展或安装firepath

当我开始使用包含的ElementTree模块时,我发现documentation缺少好的示例(目前只有3个,其中只有一个显示了任何立即实用的东西)。

我在这里回答了一些与lxml/ElementTree相关的问题,我经常看到人们被困在试图编写这些奇怪的列表理解来更清楚地处理XPath一行中处理的事情:

如果您有更具体的问题,请发布一些源XML和所需的效果。

我希望这能有帮助

相关问题 更多 >