将XML从URL解析为python obj

2024-09-28 19:07:42 发布

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

goodreads网站有这个API用于访问用户的“shelves:”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


Tags: 项目对象keyhttpscomapiwwwxml
2条回答

我将使用^{}XML数据结构中创建一个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})

xmltodict使用urllib3

import traceback
import urllib3
import xmltodict

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


    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

相关问题 更多 >