Есть ли способ дублировать ключ словаря и прикрепить различные значения к этим ключам? - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу создать словарь, в котором в качестве ключа указано «количество», а для значения - целое число. Однако, что мне также нужно сделать, это заставить «Количество» повторяться и добавить значения в последовательность списка, который я использую для предоставления значений.

Я уже использовал функцию dict (zip) при использовании «Количество» в списке и значений в списке, но это дает мне только один результат, когда мне нужно несколько (столько, сколько элементов в моем списке значений) ). Я также пытаюсь использовать цикл for, но, возможно, мой синтаксис неправильный. Вот взгляд на то, что я сделал до сих пор:

from bs4 import BeautifulSoup
fd = []

html = '''<input id="qty_cartline_change_-1313013247" class="qty" type="text" name="qty" value="1" maxlength="4" data-component="quantitybox.value" data-productdata-name="quantity">
<input id="qty_cartline_change_112550273" class="qty" type="text" name="qty" value="1" maxlength="4" data-component="quantitybox.value" data-productdata-name="quantity">
<input id="qty_cartline_change_112551625" class="qty" type="text" name="qty" value="6" maxlength="4" data-component="quantitybox.value" data-productdata-name="quantity">
<input id="qty_cartline_change_112559375" class="qty" type="text" name="qty" value="2" maxlength="4" data-component="quantitybox.value" data-productdata-name="quantity">
<input id="qty_cartline_change_112550126" class="qty" type="text" name="qty" value="5" maxlength="4" data-component="quantitybox.value" data-productdata-name="quantity">

quantity = ['Quantity']
soup = BeautifulSoup(html, 'lxml')
values = [item['value'] for item in soup.select("input[value]")]
d = dict(zip(quantity, values))
print(d)

Результат для этого следующий:

{'Quantity': '1'}

Это шаг в правильном направлении, но мне нужно, чтобы результаты выглядели так:

{'Quantity': '1'}
{'Quantity' : '1'}
{'Quantity' : '6'}
{'Quantity' : '2'}
{'Quantity' : '5'}

Что мне делать?

1 Ответ

1 голос
/ 11 апреля 2019

Ну, для ясности вы можете иметь не более одного значения для каждого ключа в словаре .Чтобы решить вашу проблему, вы можете иметь список словарей или, возможно, словарь, в котором вместо ключа Quantity указан идентификатор элемента HTML.Наименьшим изменением будет список словарей, и он будет выглядеть как

values = ...  # same as before
dicts = [{'Quantity': v} for v in values]
...