Python使用Web API数据可视化

本文介绍了如何使用Python通过Web API获取网站数据并进行可视化。首先解释了Web API的基本原理和API调用的过程,接着展示了如何处理API响应,从中提取GitHub上最受欢迎的Python项目信息。然后,通过Pygal库创建了一个交互式条形图,条形的高度代表项目获得的星数,点击条形可以跳转到GitHub项目页面。最后,文章详细讲解了如何自定义工具提示和添加可点击的链接,以增强图表的交互性和信息丰富度。
摘要由CSDN通过智能技术生成

    Web应用编程接口 (API)自动请求网站的特定信息而不是整个网页,再对这些信息进行可视化。由于这样编写的程序始终使用最新的数据来生成可视化,因此即便数据瞬息万变,它呈现的信息也都是最新的。

    Web API是网站的一部分,用于与使用非常具体的URL请求特定信息的程序交互。这种请求称为API调用。请求的数据将以易于处理的格式(如JSON或CSV)返回。依赖于外部数据源的大多数应用程序都依赖于API调用,如集成社交媒体网站的应用序。

处理API响应

执行API调用并处理结果,找出GitHub上星级最高的Python项目:

python_repos.py

import requests

#执行API调用并存储响应
url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'

r = requests.get(url)    #使用requests 来执行调用,将响应对象存储在变量r中
print("Status code:",r.status_code)#响应对象包含一个名为status_code的属性,它让我们知道请求是否成功(状态码200表示请求成功)
#将API响应存储在一个变量中
response_dict = r.json()

#处理结果
print(response_dict.keys())

处理响应字典

将API调用返回的信息存储到字典中后,就可以处理这个字典中的数据了。下面生成一些概述这些信息的输出。可确认收到了期望的信息,进而可以开始研究感兴趣的信息:

import requests

#执行API调用并存储响应
url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'

r = requests.get(url)
print("Status code:",r.status_code)
#将API响应存储在一个变量中
response_dict = r.json()
print("Total repositories:",response_dict['total_count'])#指出GitHub包含多少个Python仓库
#探索有关仓库的信息
repo_dicts=response_dict['items']#response_dict字典存储在列表中,列表里每个字典都包含有关一个Python仓库的信息
print("Repositories returned:",len(repo_dicts))
#研究第一个仓库
repo_dict = repo_dicts[0]
print("\nKeys:",len(repo_dict))
for key in sorted(repo_dict.keys()):
	print(key)

GitHub的API返回有关每个仓库的大量信息:repo_dict 包含68个键(见❶)。通过仔细查看这些键,可大致知道可提取有关项目的哪些信息(要准确地获悉API将返回哪些信息,要么阅读文档,要么像此处这样使用代码来查看这些信息)。

  Status code: 200
  Total repositories: 713062
  Repositories returned: 30

❶ Keys: 68
  archive_url
  assignees_url
  blobs_url
  --snip--
  url
  watchers
  watchers_count

概述最受欢迎的仓库

对这些数据进行可视化时,我们需要涵盖多个仓库。下面就来编写一个循环,打印API调用返回的每个仓库的特定信息&#x

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值