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 请求库的其他部分来构建您在这里学到的知识。