【发布时间】:2021-01-27 00:39:30
【问题描述】:
我想在列表中首先获得最低价格...这是我的代码
for link in productlinks:
try:
r = requests.get(link, headers=headers)
soup = BeautifulSoup(r.content, 'lxml')
name = soup.find(
'h1', class_='product-main__name').text.strip()
price = soup.find(
'p', class_='product-action__price').text.strip()
price = price.replace('£', '')
Aitems = {
'price': price,
'name': name
}
itemlist.append(Aitems)
print('Saving:', Aitems['price'])
except AttributeError:
continue
df = pd.DataFrame(itemlist)
print(min(df['price']))
输出:
Saving: 30.45
Saving: 31.95
Saving: 32.75
Saving: 32.95
Saving: 29.45
Saving: 38.95
Saving: 40.95
29.45
我可以获得该代码的最小值,但我想要整个“产品”列表,因此它从最小值开始直到最大值。
Output
name price
0 Suntory Torys Classic 30.45 < "I want it to start with the minimum value"
1 Suntory Toki 31.95
2 Akashi Blended Whisky 32.75
3 Tokinoka White Blended Whisky 32.95
4 Hatozaki Blended Japanese Whisky 29.45
5 Nikka Days 38.95
有什么简单的方法可以做到吗?
我试过了
print(df.sort_values(by=['price']))
但它没有对最低价格进行排序。这是一种随机数。这是输出:
38 Ichiro's Malt Wine Wood Reserve 115
37 Ichiro's Malt MWR\nMizunara Wood Reserve 115
52 Suntory Yamazaki Puncheon\nBot.2013 1200
51 Suntory Yamazaki Bourbon Barrel\nBot.2013 1200
39 Suntory Yamazaki 12 Year Old 125
40 Okayama Single Malt 147
【问题讨论】:
-
听起来要对列表进行排序?
-
欢迎来到 SO!查看tour。请提供类似minimal reproducible example 的内容,包括输入、最少的代码和所需的输出。听起来您只想对列表进行排序,不是吗?任何 Python 教程都应该涵盖这一点。