2016-07-19 5 views
1

Ich versuche, einzelne Objekte aus einer JSON-Antwort zu ziehen. Das Folgende ist die Antwort, die ich von der Website bekommen ich zu kratzen versucht:Scrapy: Extrat Elemente innerhalb JSON Antwort

[{"name":"AAA 404","id":"AAA404","sections":[{"id":"5393643","name":"40053","instructor":"Dellabough"}]},{"name":"AAA 604","id":"AAA604","sections":[{"id":"5393644","name":"40054","instructor":"STAFF"},{"id":"5393645","name":"40055","instructor":"Dellabough"}]}] 

Verwendung des folgenden Codes (und eine Spinne), ich bin in der Lage, die „name“ zu bekommen, „id“ und "Sektion".

def parse(self, response): 
    jsonresponse = json.loads(response.body_as_unicode()) 

    for i in jsonresponse: 
     print i["id"], i["name"], i["sections"] 

Das gibt mir folgendes:

ID = AAA404 NAME = AAA 404 SECTION = [{u'instructor': u'Dellabough', u'id': u'5393643', u'name': u'40053'}] 
ID = AAA604 NAME = AAA 604 SECTION = [{u'instructor': u'STAFF', u'id': u'5393644', u'name': u'40054'}, {u'instructor': u'Dellabough', u'id': u'5393645', u'name': u'40055'}] 

Nun, was ich möchte die „Lehrer“, „id“ und „name“ zu tun ist, ziehen, die in den Abschnitten sind. Letztendlich muss ich diese Informationen mit der gesamten ID und dem Abschnitt verknüpfen, aber im Moment bin ich hauptsächlich damit beschäftigt, diese Informationen in einem brauchbaren Format zu extrahieren, wie ich es für die allgemeine ID, den Namen, die Sektion machen kann.

Antwort

0

iterieren einfach über die Abschnitte dicts eine innere Schleife, die ID und den Namen von jedem werde ich mit jedem in Verbindung gebracht werden:

for dct in i["sections"]: 
    print(i["id"], i["name"], dct["instructor"], dct["id"], dct["name"]) 
+0

Danke. Das funktioniert großartig. – ridingsolo