为了账号安全,请及时绑定邮箱和手机立即绑定

删除重复值并附加行值的其余部分

删除重复值并附加行值的其余部分

烙印99 2023-06-06 16:18:40
我使用下面的代码来爬取页面上的多个链接,并从每个相应的链接中获取数据列表:carspider.py:def parse_item(self, response):    sel = Selector(response)    item = CarscrapeItem()    item['carType'] = sel.xpath('//div[@class="listing__section  listing__section--key-details  listing__key-details  portable-one-whole  push--bottom"]//span[@itemprop="manufacturer"]//text()').get()    item['model'] = sel.xpath('//div[@class="listing__section  listing__section--key-details  listing__key-details  portable-one-whole  push--bottom"]//span[@itemprop="model"]//text()').get()    item['variant'] = sel.xpath('//div[@class="listing__section  listing__section--key-details  listing__key-details  portable-one-whole  push--bottom"]//span[@class="float--right"]//text()')[3].get()    item['year'] = sel.xpath('//div[@class="listing__section  listing__section--key-details  listing__key-details  portable-one-whole  push--bottom"]//span[@class="float--right"]//text()')[4].get()    item['engineCapacity'] = sel.xpath('//div[@class="listing__section  listing__section--key-details  listing__key-details  portable-one-whole  push--bottom"]//span[@class="float--right"]//text()')[5].get()    item['transmission'] = sel.xpath('//div[@class="listing__section  listing__section--key-details  listing__key-details  portable-one-whole  push--bottom"]//span[@class="float--right"]//text()')[6].get()    item['seatCapacity'] = sel.xpath('//div[@class="listing__section  listing__section--key-details  listing__key-details  portable-one-whole  push--bottom"]//span[@class="float--right"]//text()')[7].get()我想删除重复的汽车类型并将其余行值附加到现有汽车类型。我想这样做一个推荐系统会更好。有可能用 Scrapy 做到这一点吗?我搜索了与重复值相关的回复。大多数情况下,它们与重复过滤器有关,而其他过滤器对我不起作用。
查看完整描述

1 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

仅供参考,字典键在 python 中必须是唯一的。所以你期望的输出是不可能的。


建议:您可以通过以下方式存储数据:


car = {

  "Honda": [

    {

      "model": "Civic",

      "variant": "TC VTEC Premium",

      "year": "2020",

      "engineCapacity": "1498cc",

      "transmission": "Automatic",

      "seatCapacity": "5"

    },

    {

      "model": "Accord",

      "variant": "TC",

      "year": "2020",

      "engineCapacity": "1498 cc",

      "transmission": "Automatic",

      "seatCapacity": "5"

    }

  ],

  "BMW": [

    {

      "model": "XYZ",

      "year": "2020",

      "transmission": "Automatic",

      "seatCapacity": "5"

    },

    {

      "model": "ABC",

      "year": "2020",

      "engineCapacity": "1498 cc",

      "transmission": "Automatic",

      "seatCapacity": "5"

    }

  ]

}

您可以使用下面的部分代码从文件中逐行读取数据,您可以编写自己的代码以上述格式存储数据


import json

with open('PATH_TO_FILE/FILE_NAME.json') as f:

  data = f

  for line in f:

    line = json.loads(line)

    # YOUR CODE HERE


查看完整回答
反对 回复 2023-06-06
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信