from bs4 import BeautifulSoup
import requests
import pandas as pd
import ast
s = requests.Session()
page=1
traits = []
#Get URL and extract content
class Scraper():
while page != 10:
content = s.get('https://bullsontheblock.com/api/tokens/{}'.format(page))
soup = BeautifulSoup(content.text, 'html.parser')
page = page + 1
traits = ast.literal_eval(soup.text)['attributes']
df = pd.DataFrame(traits).set_index('value').to_numpy()
trait_count = len(df)
print(trait_count)
每当我使用上面的代码时,我都会得到按行分隔的整数,如下所示:
9
8
8
8
6
9
8
8
7
我如何创建一个列来告诉我一个数字出现的次数,所以它看起来像这样:
9 - 2
8 - 5
7 - 1
6 - 1
基本上上面的代码提取了列表中有多少个特征的计数,但是我有多个列表,所以我想提取具有一定数量特征的列表出现的次数的计数,以便它看起来像上面那样。我该怎么做?
正如评论和@PyxlDavon 的回答中提到的,您可能想要使用字典:
from bs4 import BeautifulSoup
import requests
import pandas as pd
import ast
s = requests.Session()
page=1
traits = []
traits_d = {}
#Get URL and extract content
class Scraper():
while page != 10:
content = s.get('https://bullsontheblock.com/api/tokens/{}'.format(page))
soup = BeautifulSoup(content.text, 'html.parser')
page = page + 1
traits = ast.literal_eval(soup.text)['attributes']
df = pd.DataFrame(traits).set_index('value').to_numpy()
trait_count = len(df)
if trait_count in traits_d:
traits_d[trait_count] += 1
else:
traits_d[trait_count] = 1
traits_d 包含特征和看到的次数:
traits_d
{9: 2, 8: 5, 6: 1, 7: 1}
要打印出您显示的键,请循环遍历已排序的键:
for key in sorted(traits_d.keys(), reverse=True):
print(key, '-', traits_d[key])
9 - 2
8 - 5
7 - 1
6 - 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句