Scrapy:JSON响应中的extrat项

时间:2016-07-19 22:03:35

标签: python json scrapy

我正在尝试从JSON响应中提取单个对象。以下是我从网站上得到的回复:

[{"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"}]}]

使用以下代码(和蜘蛛),我可以获得“name”,“id”和“section”。

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

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

这给了我以下内容:

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'}]

现在,我想要做的是拉出部分内的“讲师”,“id”和“名字”。最后,我需要将这些信息与整体ID和部分联系起来,但是现在我最关心的是能够以可用的格式提取这些信息,就像我可以对整体ID,名称,部分一样。

1 个答案:

答案 0 :(得分:0)

使用内部循环迭代部分 dicts,每个i的id和名称将与每个相关联:

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