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