【问题标题】:Parse XML from URL into python object将 XML 从 URL 解析为 python 对象
【发布时间】:2014-07-30 06:01:27
【问题描述】:

goodreads 网站有这个 API 用于访问用户的“书架”:https://www.goodreads.com/review/list/20990068.xml?key=nGvCqaQ6tn9w4HNpW8kquw&v=2&shelf=toread

它返回 XML。我正在尝试创建一个 django 项目,该项目在此 API 的书架上显示书籍。我正在寻找如何(或者是否有更好的方法)来编写我的视图,以便我可以将对象传递给我的模板。目前,这就是我正在做的事情:

import urllib2

def homepage(request):
    file = urllib2.urlopen('https://www.goodreads.com/review/list/20990068.xml?key=nGvCqaQ6tn9w4HNpW8kquw&v=2&shelf=toread')
    data = file.read()
    file.close()
    dom = parseString(data)

如果我正确执行此操作,我不完全确定如何操作此对象。我正在关注这个tutorial

【问题讨论】:

标签: python xml django xml-parsing urllib2


【解决方案1】:

xmltodict 使用 urllib3

import traceback
import urllib3
import xmltodict

def getxml():
    url = "https://yoursite/your.xml"

    http = urllib3.PoolManager()

    response = http.request('GET', url)
    try:
        data = xmltodict.parse(response.data)
    except:
        print("Failed to parse xml from response (%s)" % traceback.format_exc())
    return data

【讨论】:

    【解决方案2】:

    xmltodict 使用 requests

    import requests
    import xmltodict
    
    url = "https://yoursite/your.xml"
    response = requests.get(url)
    data = xmltodict.parse(response.content)
    

    【讨论】:

      【解决方案3】:

      我会使用xmltodictXML 数据结构中创建一个python 字典,并将这个字典传递给上下文中的模板:

      import urllib2
      import xmltodict
      
      def homepage(request):
          file = urllib2.urlopen('https://www.goodreads.com/review/list/20990068.xml?key=nGvCqaQ6tn9w4HNpW8kquw&v=2&shelf=toread')
          data = file.read()
          file.close()
      
          data = xmltodict.parse(data)
          return render_to_response('my_template.html', {'data': data})
      

      【讨论】:

        猜你喜欢
        • 2011-07-28
        • 1970-01-01
        • 2021-05-16
        • 2016-12-02
        • 1970-01-01
        • 1970-01-01
        • 2015-09-12
        • 1970-01-01
        相关资源
        最近更新 更多