使用API-Web应用编程

使用github的API接口获取项目信息并生成图形化展示

利用github提供的API接口:https://api.github.com/search/repositories?q=language:python&sort=stars,通过python实现对获取数据的分析展示。

范例代码:

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import requests
import pygal

from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS

url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
#获取请求
r = requests.get(url)

if r.status_code != 200:
#根据返回码判断是否访问成功
print(f'连接失败,请检查网络连接')
else:
#将获取到的返回值items部分内容赋值给repo_dicts
repo_dicts = r.json()['items']

#创建两个空列表,用于存储仓库名称及仓库对应的星数及描述
names, plot_dicts = [], []

#遍历列表,将名称加入到列表中
for repo_dict in repo_dicts:
names.append(repo_dict['name'])
#plot_dict列表中存储的是字典,字典由value,labele及xlink三个键
plot_dict = {
'value':repo_dict['stargazers_count'],
'label':repo_dict['description'],
'xlink':repo_dict['html_url']
}
plot_dicts.append(plot_dict)

#定义可视化展示柱形图的样式
my_style = LS('#333366', base_style=LCS)

#Pygal类Config的实例,并将其命名为my_config
my_config = pygal.Config()
#让标签绕x轴旋转45度
my_config.x_label_rotation = 45
#隐藏图例
my_config.show_legend = False
#设置图表标题、副标题和主标签的字体大小
my_config.title_font_size = 24
my_config.label_font_size = 14
my_config.major_label_font_size = 18
#将较长的项目名缩短为15个字符(如果你将鼠标指向屏幕上被截短的项目名,将显示完整的项目名)
my_config.truncate_label = 15
#隐藏图表中的水平线
my_config.show_y_guides = False
#设置宽度
my_config.width = 1000

chart = pygal.Bar(my_config, style=my_style)
chart.title = 'Github上的Python项目排名'
chart.x_labels = names

chart.add('',plot_dicts)
chart.render_to_file('python_repos2.svg')

最终展示如下:


使用API-Web应用编程
http://www.okko.tk/2023/06/08/使用API-Web应用编程/
作者
ZhJy
发布于
2023年6月8日
许可协议