Python编程:从入门到实践
章节

第 17 章 使用 API

Python 开始和互联网上的系统对话

这一章用 Requests 和 GitHub API 等例子,让读者理解程序如何主动请求外部服务并处理响应。

章节主张

API 学习的关键,不是会发请求,而是理解外部系统返回的数据结构和交互协议。

中文释读

API 是很多初学者第一次接触‘程序不是孤岛’的地方。你写的脚本可以向远端服务要数据、带参数、读响应、看状态码,再把结果转成字典继续处理。作者在这里选 GitHub 之类的现实接口,非常聪明,因为它会让你立即感受到 Python 不只是本地脚本语言,而是可以嵌进网络世界的工具。

本章知识路线

  1. 会用 API,Python 才真正接上外部世界
  2. 真正要学的不是请求,而是如何理解响应结构

关键论点

  • API 让程序具备连接外部系统的能力。
  • 状态码、响应头和 JSON 结构都是理解接口的基础。
  • 程序与外部世界交互时,可靠性和容错比本地脚本更重要。

行动清单

  • 看懂 URL、查询参数和返回 JSON 的关系。
  • 请求外部资源时先检查状态码。
  • 把响应结构解析成可复用的数据流。

源章节深读

第 17 章 使⽤ API 本章介绍如何编写⼀个独⽴的程序,对获取的数据进⾏可视化。这个 程序将使⽤应⽤程序接⼝( application program interface , API )⾃动请 求⽹站的特定信息,并对这些信息进⾏可视化。这样编写的程序始终 使⽤最新的数据进⾏可视化,因此即便数据实时更新,图形呈现的信 息也是最新的。 17.1 使⽤ API API 是⽹站的⼀部分,⽤于与程序进⾏交互。这些程序使⽤⾮常具体的 URL 请求特定的信息,⽽这种请求称为 API 调⽤。请求的数据将以程序易 于处理的格式(如 JSON 或 CSV )返回。使⽤外部数据源的应⽤程序(如 集成了社交媒体⽹站的应⽤程序)⼤多依赖 API 调⽤。 17.1.1 Git 和 GitHub 本章会对来⾃ GitHub 的信息进⾏可视化。你也许了解, GitHub 是⼀个让程 序员能够协作开发项⽬的⽹站。我们将使⽤ GitHub 的 API 来请求有关该⽹ 站中 Python 项⽬的信息,再使⽤ Plotly ⽣成交互式的图形,以呈现这些项 ⽬的受欢迎程度。

17.1 使用 API

17.1 使⽤ API API 是⽹站的⼀部分,⽤于与程序进⾏交互。这些程序使⽤⾮常具体的 URL 请求特定的信息,⽽这种请求称为 API 调⽤。请求的数据将以程序易 于处理的格式(如 JSON 或 CSV )返回。使⽤外部数据源的应⽤程序(如 集成了社交媒体⽹站的应⽤程序)⼤多依赖 API 调⽤。 17.1.1 Git 和 GitHub 本章会对来⾃ GitHub 的信息进⾏可视化。你也许了解, GitHub 是⼀个让程 序员能够协作开发项⽬的⽹站。

这节解决什么:这一节主要解决《第 17 章 使用 API》里一个更具体的子问题:17.1 使用 API 该怎样落到实际代码或项目动作上。

怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。

提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。

17.2 使用 Plotly 可视化仓库

17.2 使⽤ Plotly 可视化仓库 下⾯使⽤收集到的数据来创建图形,以展⽰ GitHub 上 Python 项⽬的受欢迎 程度。我们将创建⼀个交互式条形图,其中条形的⾼度表⽰项⽬获得了多 少颗星,⽽单击条形将进⼊相应项⽬在 GitHub 上的主⻚。

这节解决什么:这一节主要解决《第 17 章 使用 API》里一个更具体的子问题:17.2 使用 Plotly 可视化仓库 该怎样落到实际代码或项目动作上。

怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。

提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。

17.3 Hacker News API

17.3 Hacker News API 为了探索如何使⽤其他⽹站的 API 调⽤,我们来看看 Hacker News ⽹站。 在这个⽹站上,⽤户分享编程和技术⽅⾯的⽂章,并就这些⽂章展开积极 的讨论。 Hacker News 的 API 让你能够访问有关该⽹站上所有⽂章和评论的 信息,并且不要求通过注册获得密钥。

这节解决什么:这一节主要解决《第 17 章 使用 API》里一个更具体的子问题:17.3 Hacker News API 该怎样落到实际代码或项目动作上。

怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。

提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。

17.4 小结

17.4 ⼩结 在本章中,你学习了如何使⽤ API 来编写独⽴的程序,以⾃动采集所需的 数据并进⾏可视化。你不仅使⽤了 GitHub API 来探索 GitHub 上星数最多的 Python 项⽬,还⼤致了解了 Hacker News API ,学到了如何使⽤ Requests 包 来⾃动执⾏ API 调⽤,以及如何处理调⽤的结果。本章还简要地介绍了⼀ 些 Plotly 设置,可⽤其进⼀步定制⽣成的图形的外观。

这节解决什么:这一节主要解决《第 17 章 使用 API》里一个更具体的子问题:17.4 小结 该怎样落到实际代码或项目动作上。

怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。

提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。

辨析题

为什么学会 API 后,Python 的能力边界会一下子扩张?

本章图版学习路径

会用 API,Python 才真正接上外部世界

真正要学的不是请求,而是如何理解响应结构