我正在寻找一个字典,该字典列出“ Quantity”作为键,并给出一个整数作为值。但是,我还需要做的是获取“ Quantity”以重复自身,并按我用来提供值的列表顺序添加值。
我已经做的是在列表中使用'Quantity'和列表中的值时使用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'}
我该怎么办?
答案 0 :(得分:1)
好吧,您在字典中的每个键最多只能有一个值。但是,为了解决您的问题,您可以使用字典列表或字典,在该列表中,代替键Quantity
的是HTML元素的ID。最小的变化是字典列表,看起来像
values = ... # same as before
dicts = [{'Quantity': v} for v in values]