Невозможно предоставить возрастающее целочисленное значение идентификатора с помощью Enumerate - PullRequest
0 голосов
/ 03 мая 2018

Я работаю над сценарием, который будет очищать веб-страницу с помощью Beautiful Soup. На странице есть несколько элементов, которые я хочу проанализировать для получения различной информации. Для каждого div я создам словарь. Словарь содержит пары ключ-значение для различных вещей, которые я хочу осуществить на странице. Затем я помещаю каждый словарь в список.

Как часть моего скрипта, я хочу назначить инкрементный целочисленный идентификатор (0, 1, 2) в качестве пары ключ-значение в каждом div. Все в моем скрипте работает, кроме кода для предоставления этого идентификатора. Фиктивные данные, с которыми я работаю, имеют 12 дел. Скрипт выдает 12 словарей, но для каждого словаря id = 11.

Ниже приведен код, с которым я работаю. Я закомментировал большую часть одной из функций, потому что она не имеет отношения к этой конкретной проблеме. Я подозреваю, что проблема где-то в моей функции "count_headers", но я думаю, что я использую перечисление правильно.

def extract_metadata(divs):

    header_dict_list = []

    for div in divs:
        header_dict = {}

        header_index = enumerate(divs,0)

        def count_headers(div):
            for num, div in header_index:
                header_id = num
                header_dict['id'] = header_id

        def extract_header_stuff(div):

            # Bunch of stuff happens here to pull out different pieces of information and populate the header_dict for each div. 

        extract_header_stuff(div)

        count_headers(div)

        header_dict_list.append(header_dict)

    print (header_dict_list)

1 Ответ

0 голосов
/ 03 мая 2018

Вы неправильно используете enumerate. Правильный код должен быть:

    for id, div in enumerate(divs) :
        header_dict = {id: id}

        # You probably don't want to define `extract_header_stuff` in the loop
        # either.
...