2014-06-09 6 views
19

Die Goodreads-Website hat diese API für einen Benutzer Zugriff auf den Regalen: "https://www.goodreads.com/review/list/20990068.xml?key=nGvCqaQ6tn9w4HNpW8kquw&v=2&shelf=toreadParse XML von URL in Python Objekt

Es gibt XML. Ich versuche ein Django-Projekt zu erstellen, das Bücher aus dieser API in einem Regal anzeigt. Ich möchte herausfinden, wie (oder wenn es einen besseren Weg gibt) meine Ansicht zu schreiben, damit ich ein Objekt an meine Vorlage übergeben kann. Derzeit ist es das, was ich tue:

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) 

Ich bin mir nicht ganz sicher, wie dieses Ziel zu manipulieren, wenn ich das richtig mache. Ich folge diesem tutorial.

Antwort

28

würde ich xmltodict verwenden, um einen Python-Wörterbuch aus der XML Datenstruktur zu machen und dieses Wörterbuch auf die Vorlage in dem Kontext passieren:

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}) 
0

Verwendung lxml objectify, wird die XML-Daten in Python-Objekte analysieren.