Scrapy: Как бы я добавил элемент, который нумерует записи в моем выводе CSV? - PullRequest
0 голосов
/ 13 февраля 2019

Мне нужно включить в мой паук элемент (item['number'] = ... ), который просто присваивает номер каждой очищенной строке в моем выходном файле CSV в порядке возрастания.

Таким образом, столбец «число» назначит 1 для первой строки, 2 для второй строки и так далее.Как бы я закодировал элемент, чтобы он возвращал его таким образом, чтобы каждый раз возвращать приращения +1?

* На случай, если вам интересно, мне нужно использовать числовой столбец в качестве Dim Primary Key для базы данных куба.

Любая помощь приветствуется.Спасибо!

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Если вы действительно хотите, чтобы число было частью процесса создания и вывода элементов, вы можете использовать Pipeline .

settings.py

ITEM_PIPELINES = {
    "myspider.pipelines.NumberPipeline": 300,
}

pipelines.py

class NumberPipeline(object):
    def open_spider(self, spider):
        self.number = 1 # The starting number.

    def process_item(self, item, spider):
        item['number'] = self.number
        self.number += 1
        return item
0 голосов
/ 13 февраля 2019

Когда вы будете читать свой CSV-файл, вы можете использовать enumerate как:

import csv

with open('file.csv', 'w') as csvfile:
    reader = csv.reader(csvfile)
    for i, row in enumerate(reader, start=1):
        print(i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...