web-dev-qa-db-fra.com

Analyser XML de l'URL dans python

Le site Web de goodreads dispose de cette API pour accéder aux "étagères" d'un utilisateur: https://www.goodreads.com/review/list/20990068.xml?key=nGvCqaQ6tn9w4HNpW8kquw&v=2&shelf=toread

Il renvoie XML. J'essaie de créer un projet Django qui montre des livres sur une étagère à partir de cette API. Je cherche à savoir comment (ou s'il existe une meilleure façon que) d'écrire ma vue pour pouvoir passer un objet à mon modèle. Voici ce que je fais actuellement:

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)

Je ne sais pas exactement comment manipuler cet objet si je le fais correctement. Je suis ceci tutoriel .

25
smilebomb

J'utiliserais xmltodict pour créer un dictionnaire python à partir de la structure de données XML et passer ce dictionnaire au modèle à l'intérieur le contexte:

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})
37
alecxe