2014-06-09 11 views
19

Il sito Goodreads ha questa API per l'accesso di un utente 'scaffali:' https://www.goodreads.com/review/list/20990068.xml?key=nGvCqaQ6tn9w4HNpW8kquw&v=2&shelf=toreadParse XML da URL in oggetto python

Restituisce XML. Sto provando a creare un progetto di Django che mostra i libri su uno scaffale da questa API. Sto cercando di scoprire come (o se c'è un modo migliore rispetto a) di scrivere la mia vista in modo da poter passare un oggetto al mio modello. Attualmente, questo è quello che sto facendo:

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) 

io non sono del tutto sicuro di come manipolare questo oggetto se sto facendo questo in modo corretto. Sto seguendo questo tutorial.

risposta

28

userei xmltodict per fare un dizionario Python fuori della struttura dei dati XML e passare questo dizionario per il modello all'interno del contesto:

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

Usa lxml objectify, sarà analizzare il codice XML in oggetti Python.