利用 python 分析干货集中营的数据中提交干货内容最多的人

分析的链接是:http://gank.io/api/data/all/1000/1

1000 表示返回的数据个数,1 表示页数,具体参数可在干货集中营的 API 文档中查看。干货集中营API文档

定义一个方法,进行计算返回的json数据中提交干货数据最多的人

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
def get_gank_info(ipaddress):
"""
获取干货集中营的数据
"""
r = requests.get(ipaddress)
r = r.json()

results = r['results'] # 解析这个字段

authors, names, counts = [], [], []
# 得到所有作者
for result in results:
name = result['who']
if name != 'None' and name != 'null':
names.append(name)


count = {}
for i in names:
# 和 get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值
# key -- 查找的键值。
# default -- 键不存在时,设置的默认键值。关键步骤
count[i] = count.setdefault(i,0)
count[i] += 1
# print(count[i])

for k, v in count.items():
# 提交的干货大于5篇才保存
if v >= 5:
authors.append(str(k))
counts.append(v)
print(str(k) + ' : ' + str(v))

# 可视化柱状图显示
my_style = LS('#333366', base_style=LCS)
chart = pygal.Bar(style=my_style, x_label_rotation=45, show_lengend=False)
chart.title = "1000条干货数据中谁提供的最多"
chart.x_labels = authors

chart.add('',counts)
chart.render_to_file('gank_most_post_type.svg')

调用该方法即可

get_gank_info("http://gank.io/api/data/all/1000/1")

小额支持我写出更好的文章~