Python有一个庞大且可扩展的库,其中包含许多用于不同用途的功能和包。其中一个包称为请求库,用于进行 API 调用。但什么是 API 以及开发人员如何使用它们?
这篇文章将介绍如何设置 Python 以与 API 通信以及如何执行 API 调用。您还将学习如何使用 API 数据并将该数据显示给您的软件用户。您将看到一些代码示例,显示用于执行这些操作以使您的软件受益的语法和代码。
-
Python API 请求和响应代码
-
如何发出获取请求
-
开始使用 Python API
事不宜迟,让我们开始吧。
什么是 API?
首字母缩略词 API 代表应用程序编程接口,它是一种设备,例如用于使用编程代码发送和检索数据的服务器。最常见的是,该技术用于从源检索数据并将其显示给软件应用程序及其用户。
当您访问网页时,API 的工作方式与浏览器相同,信息请求会发送到服务器,如何在 Windows PC 中手动创建系统还原点服务器会做出响应。唯一的区别是服务器响应的数据类型,对于 API,数据是 JSON 类型。
JSON 代表 JavaScript Object Notation,它是大多数软件语言中 API 的标准数据表示法。
Python API 请求和响应代码
对任何类型的服务器发出的任何请求总是返回一个响应对象,该响应由多个部分组成。该响应有两部分对于使用 API 很重要,一部分称为状态代码,另一部分称为响应主体。
状态代码用于指示请求的状态,例如它是成功还是失败。有非常多的响应码用来表示不同的状态,我们来看几个例子。
-
200:响应无错误成功。
-
301:网址重定向
-
400:错误请求
-
401:访问被拒绝
-
403:禁止请求
-
404:未找到
-
503:服务器错误
每个响应代码都以一个数字开头,用于帮助对响应进行分类。以 2 开头的响应表示成功,3 表示 URL 重定向,数字 4 和 5 表示遇到错误。
requests 包不是标准库的一部分,因此您需要安装并导入该库才能使用。要使用 pip 或 conda 安装它们,您需要使用以下代码行。
pip install requests conda install requests
然后要导入它,您需要使用以下代码行,一旦完成,您就可以开始发出 API 请求了。
import requests
如何发出获取请求
使用 Python 向 API 发出请求的过程实际上非常简单,您只需要知道要与哪个 API 通信即可。在 Python 中,您只需要一行代码即可进行基本的 API 调用,这是通过 get() 请求函数完成的。
查看下面的代码,您可以看到该过程的样子。
response = requests.get("https://someapiurl.clom/api")
这行代码使用请求库访问 get 函数,然后调用目标的 URL。如果 URL 指向不存在、已移动或您没有权限的位置,您将收到一个指示问题的状态代码。否则,响应对象将保存到变量 response 中。
要以可管理的方式访问响应主体中的数据,您可以使用作为标准库一部分的 Python JSON 包。JSON 包附带两个主要函数,您将使用它们来帮助进行数据格式化,从而更轻松地使用 API。
这两个函数是 json.dumps() 和 json.loads(),它们的用途略有不同。dumps() 函数用于将 Python 对象转换为字符串,而 loads() 获取 JSON 字符串并将其转换为 Python 对象。让我们看一下运行中的 dumps() 函数的示例,假设您调用随机用户 API。
import json def jprint(obj): # create a formatted string of the Python JSON object text = json.dumps(obj, sort_keys=True, indent=4) print(text) jprint(response.json())
您可能会收到类似于以下 JSON 代码的响应。
{"results": [{"gender": "male", "name": {"title": "Mr", "first": "Norman", "last": "Knight"}}]}
如您所见,这为我们要使用的数据提供了一种非常难以读取的格式,可以使用 JSON dumps() 函数处理此问题。将此对象传递给 dumps() 函数的结果如下所示。
{ "results": [ { "gender": "male", "name": { "title": "Mr", "first": "Norman", "last": "Knight" } } ] }
如您所见,这种格式更易于阅读并简化了使用 API 数据的过程。这一切都非常有用,但是如果你想请求更具体的数据,你需要传入查询参数。在 Python 中有两种方法可以做到这一点,使用 params 关键字或将参数添加到 URL。
通过 params 关键字添加参数是处理带参数查询的推荐方法。将参数列为Python 字典对象允许请求库处理一些繁重的工作。
接下来让我们看看这个过程。
如何使用参数发出请求
使用参数发出请求与您目前所见并无太大区别,我们只需将 params 关键字添加到 get 请求的 URL 之后即可。为此,您需要使用逗号将 URL 与 params 关键字分开。
让我们看看接下来会是什么样子。
parameters = { "inc": { gender, name, }, "results": 5 }
使用此参数字典,我们可以将此信息传递到 get() 请求中,以指定我们希望从随机用户 API 获得的数据。
response = requests.get("https://randomuser.me/api/", params=parameters)
开始使用 Python API
到目前为止,您学到了很多关于 Python API 的知识,从它们背后的理论一直到使用它们的实践。您已经了解了如何安装与 API 通信的 Python 要求,以及如何在您的代码中使用它们。您还学习了如何修改请求,以及如何格式化它们以便于使用。
展望未来,您可以通过将这些技能付诸实践并测试各种开放访问 API 来巩固您的知识。此外,您可以通过探索 Python 请求库的其他部分来构建您在这里学到的知识。