python的dict一个键映射多个值

下列代码

    def parse_item(self, response):
        sel = Selector(response)
        item = LianjiaItem()
        #item['domain_id'] = response.xpath('//input[@id="sid"]/@value').get()
        #item['name'] = response.xpath('//div[@id="name"]').get()
        #item['description'] = response.xpath('//div[@id="description"]').get()
        item['money'] = sel.xpath('//*[@id="content"]/div[1]/div[1]/div[1]/div/span/em/text()').extract()
        item['area'] = sel.xpath('//div[@class="content__list--item--main"]/p[2]/text()[5]').re('[0-9]{0,2}}')
        item['location'] = sel.xpath('//div[@class="content__list--item--main"]/p[2]/a[1]/text()').extract()
        yield item

返回的Item是这样的(下图)
在这里插入图片描述
如果想要这样返回Item(下图)
在这里插入图片描述
则只需增加一个循环结构,代码如下

    def parse_item(self, response):
        sel = Selector(response)
        item = LianjiaItem()
        # item['domain_id'] = response.xpath('//input[@id="sid"]/@value').get()
        # item['name'] = response.xpath('//div[@id="name"]').get()
        # item['description'] = response.xpath('//div[@id="description"]').get()
        money = sel.xpath('//div[@class="content__list--item--main"]/span/em/text()').extract()
        area = sel.xpath('//div[@class="content__list--item--main"]/p[2]/text()[5]').re('\d+')
        location = sel.xpath('//div[@class="content__list--item--main"]/p[2]/a[1]/text()').extract()

        for m, a, l in zip(money, area, location):
            item['money'] = m
            item['area'] = a
            item['location'] = l
            yield item
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值