将URL从URL解析为python对象

smi*_*omb 27 python xml django urllib2 xml-parsing

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

它返回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)
Run Code Online (Sandbox Code Playgroud)

如果我正确地这样做,我不完全确定如何操纵这个对象.我正在学习本教程.

ale*_*cxe 40

xmltodict用来从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})
Run Code Online (Sandbox Code Playgroud)


gie*_*s0r 7

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
Run Code Online (Sandbox Code Playgroud)


小智 5

xmltodict 使用 requests

import requests
import xmltodict

url = "https://yoursite/your.xml"
response = requests.get(url)
data = xmltodict.parse(response.content)
Run Code Online (Sandbox Code Playgroud)