Python API:它是什么以及如何使用它

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

相关文章

文章浏览阅读2.4k次。最近要优化cesium里的热力图效果,浏览...
文章浏览阅读1.2w次,点赞3次,收藏19次。在 Python中读取 j...
文章浏览阅读1.4k次。首字母缩略词 API 代表应用程序编程接口...
文章浏览阅读802次,点赞10次,收藏10次。解决一个JSON反序列...
文章浏览阅读882次。Unity Json和Xml的序列化和反序列化_uni...