2014-06-09 18 views
19

Witryna Goodreads ma ten interfejs API umożliwiający dostęp do użytkownika „półki:” https://www.goodreads.com/review/list/20990068.xml?key=nGvCqaQ6tn9w4HNpW8kquw&v=2&shelf=toreadskładni XML z URL w python obiektu

Zwraca XML. Próbuję utworzyć projekt django, który pokazuje książki na półce z tego interfejsu API. Szukam, aby dowiedzieć się, jak (lub jeśli jest lepszy sposób niż), aby napisać mój widok, więc mogę przekazać obiekt do mojego szablonu. Obecnie to właśnie robię:

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) 

Nie jestem całkowicie pewien, jak manipulować tym obiektem, jeśli robię to poprawnie. Śledzę to tutorial.

Odpowiedz

28

użyję xmltodict do słownika Pythona z struktury danych XML i przekazać ten słownik do szablonu wewnątrz kontekstu:

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