目录

介绍

什么是API?

什么是REST架构

REST API

HTTP请求

响应

如何通过REST API使用Python请求

第 1 步:在终端上使用pip命令安装Python请求模块

第 2 步:接下来,您必须使用GET请求数据

第 3 步:检索您想要的数据(这里是Fox的随机图片)

替代方式/另一种方法

使用图像键

使用链接键

结论


介绍

如果您是开发人员(尤其是Python开发人员)并正在寻找基本指南来学习如何将Rest API与Python结合使用,那么您来对地方了,您将以非常简单的方式了解与Python结合使用的Rest API。

什么是API?

API是应用程序编程接口的首字母缩写。API充当接口,一个应用程序通过该接口使第三方应用程序可以访问其数据。

API最常见的用途是通过发出在整个网络上使用的请求来从远程网站检索数据。我们每天都看到的最常见的API用法是“使用Facebook登录(Facebook Login API)/Twitter/Google/Github”。应用程序不是直接登录到用户的社交媒体帐户,而是使用API在每次登录时对用户进行身份验证。

什么是REST架构

REST代表Representational state transfer,它是一种用于Web服务的API的软件架构风格。REST包含一组约束,旨在简化客户端/服务器通信的软件架构。

REST的一些架构约束如下:

  • 无状态:服务器不会维护来自客户端的请求的任何数据。会话状态仅存储在客户端。
  • Client-server:负责用户界面的客户端,负责后端和数据存储的服务器必须相互独立。
  • 可缓存:将从服务器检索的数据必须可由客户端或服务器缓存。
  • 统一接口:服务器应该提供一个统一的接口来访问资源而不定义它们的表示。
  • 分层系统:客户端可以通过代理或负载平衡器等其他层间接访问服务器上的资源。

有关更多信息,请查看维基百科。

REST API

我们已经讨论过API用于从远程网站检索数据。但问题是我们如何向远程Web服务器发出请求并检索数据?好吧,这是通过使用URL端点来完成的,该端点是提供API的地方,每个URL称为HTTP请求,而被发送回的数据称为响应。

HTTP请求

HTTP请求由以下组件组成:

1、Endpoint:指示您正在与之交互的数据的URL。根端点是用户请求的API的起点。例如,https://www.university.com/students。

/students是端点,https://www.university.com/是起始URL。

2、方法:REST API提供了启用创建、读取、更新和删除功能的方法。REST API使用的方法如下:

  • GET– 检索数据
  • PUT– 替换数据
  • POST– 创建数据
  • DELETE– 删除数据

响应

对于每个请求,都会从API收到响应。

例如:终端上的curl命令可以向Open Notify API发出GET请求,该API提供有关当前在太空中的宇航员的信息:

curl -X GET "<a href="http://api.open-notify.org/astros.json">http://api.open-notify.org/astros.json</a>"

通过上面的命令,您可以看到JSON格式的响应,其中提供了有关这些宇航员的数据。

如何通过REST API使用Python请求

现在,让我们了解如何使用Python请求与REST API集成。首先,确保您的主机上安装了Python和pip 。(在本教程中,我使用的是Linux),然后按照以下步骤操作:

第 1 步:在终端上使用pip命令安装Python请求模块

pip 安装请求

现在您可以开始使用Python请求与REST API进行交互,您应该将Requests库导入到您想要在其中使用它的特定Python脚本中:

第 2 步:接下来,您必须使用GET请求数据

该GET方法用于从REST API检索我们感兴趣的任何资源的数据。在这里,我们将使用https://randomfox.ca/ ,它每次都会给你一张随机的小狐狸图片。

我们必须创建一个对象或变量来存储我们将从上述网站的服务器获取的所有内容,以响应GET请求,包括标头和数据有效负载。

response = requests.get("https://randomfox.ca/floof")
print(response.status_code)

您可以从对象中访问很多内容,其中print(response.status_code)行将在您发出HTTP请求时返回一个状态代码,该状态代码将通知您请求是如何进行的。默认值为200或“Ok”,这意味着响应顺利并且返回的所有信息都很好。

其他HTTP码表如下:

第 3 步:检索您想要的数据(这里是Fox的随机图片)

所以现在,我们将使用作为请求一部分的JSON函数。所有或大部分API都使用一种称为JSON(有点像Python字典)的语言,这是一种与API信息通信的标准,其格式与网站上给出的格式相同。

可以通过几种方式访问​​请求的内容,例如:

response.content() # Return raw bytes of data payloadresponse.text()    # Return string representation of data payload,# as it is string we can’t pull any dataresponse.json()    # Convenient when the API returns JSON

response.content()

如果我们使用它,我们将获得原始格式的数据。

response.text()

如果我们使用它,我们的数据将是字符串格式。

response.json()

所以要得到我们需要的,即随机狐狸图片,我们必须使用JSON函数。我们必须用print(response.text())替换我们的print(response.status_code)(从第2步开始),我们的最终代码将如下所示:

Import requests
response = requests.get("https://randomfox.ca/floof")
print(response.json())

替代方式/另一种方法

当我们使用JSON打印时,我们实际上是在使用字典。所以我们可以创建一个新变量(fox_img)并将其设置为response.json()。response.json()将获取字典并将其放入新变量(fox_img)中,现在我们可以从中获取任何数据并将其打印出来。

例如:我们有两个键“image”和“link”,我们可以使用它们来修改我们的代码。

使用图像键

由于我们使用了图像键,API将在字典中查找图像键并打印其值。

import requests
response = requests.get("https://randomfox.ca/floof")
fox_img=response.json()
print(fox_img['image'])

输出

所以我们只有那个链接到我们图像的string,而不是整个字典。

使用链接键

在这里,我们使用了链接键,因此API现在将在字典中查找链接键并打印其值。

代码

import requests
response = requests.get("https://randomfox.ca/floof")
fox_img=response.json()
print(fox_img['link'])Output:

在这里,我们只得到了链接,因为它是链接键的值。

结论

这是一个非常简短且对初学者友好的教程,让您了解如何在Python中使用Rest API,您可以使用API做更多事情。获得数据后,您可以以自己的方式使用它,并将其应用于您的任何项目以创造奇迹。

https://www.codeproject.com/Articles/5319146/How-to-Use-Rest-API-with-Python

如何在Python中使用Rest API相关推荐

  1. Elasticsearch:如何在 Python 中使用批量 API 为 Elasticsearch 索引文档

    当我们需要创建 Elasticsearch 索引时,数据源通常没有规范化,无法直接导入. 原始数据可以存储在数据库.原始 CSV/XML 文件中,甚至可以从第三方 API 获取. 在这种情况下,我们需 ...

  2. java过滤器python是啥_过滤器如何在python中使用softlayer API

    尝试以下python脚本: """ This script retrieves storage identifier through name Important man ...

  3. 如何在Python中解析YAML文件

    如何在Python中解析YAML文件? #1楼 不依赖C标头的最简单,最纯净的方法是PyYaml( 文档 ): #!/usr/bin/env pythonimport yamlwith open(&q ...

  4. python隐藏启动台_如何在Python中启动后台进程?

    如何在Python中启动后台进程? 我正在尝试将shell脚本移植到更易读的python版本. 原始shell脚本在后台使用"&"启动多个进程(实用程序,监视器等). 如何 ...

  5. float在python_如何在python中读取.float文件? - python

    Improve this question 我正在处理大脑MRI数据,它是.float数据. 您知道如何在python中使用它吗? 与 with open('[43x25520].float') as ...

  6. python读json文件数组_如何在python中从json文件读取json对象数组

    我有一个名为example.json的json文件,包含以下内容[{ "product/productId" : "XXX", "product/ti ...

  7. 如何在Python中获得当前的CPU和RAM使用率?

    本文翻译自:How to get current CPU and RAM usage in Python? What's your preferred way of getting current s ...

  8. 如何在python中找到两个日期时间对象之间的时差?

    本文翻译自:How do I find the time difference between two datetime objects in python? 如何分辨两个datetime对象之间的时 ...

  9. 如何在Python中声明一个数组?

    如何在Python中声明数组? 我在文档中找不到任何对数组的引用. #1楼 这个怎么样... >>> a = range(12) >>> a [0, 1, 2, 3 ...

  10. 如何在Python中捕获SIGINT?

    我正在研究启动多个进程和数据库连接的python脚本. 我不时地想用Ctrl + C信号杀死脚本,我想进行一些清理. 在Perl中,我可以这样做: $SIG{'INT'} = 'exit_gracef ...

最新文章

  1. 针对Chrome的css的hack写法
  2. [转] c#中 多线程访问winform控件
  3. android可点击的列表,如何在Android的可扩展列表视图中的子点击...
  4. 汇编中16进制的写法问题
  5. 2013年28周信息安全汇总(7.7 - 7.13)
  6. 阿里云刘伟光:金融核心系统将步入分布式智能化的时代
  7. Sublime Text 3 详细安装教程
  8. JVM学习-字节码指令
  9. python音频提取pcm_python 实现录音pcm格式功能
  10. 如何vista中使用netmeeting
  11. cisp-pte考试经验分享
  12. 湖南师范大学2018年大学生程序设计竞赛新生赛 F 小名的回答
  13. 笔记本电脑的计算机名称在哪里看,如何查看笔记本电脑的IP地址
  14. python表达式3or5的值为_Python表达式10+5%3-True+False的值为____。
  15. c++读取wav音频方法
  16. MySQL_15_MySQL底层SQL查询成本计算
  17. swift UI专项训练21 网页浏览器
  18. 宁夏小学三年级计算机下册教案,【宁夏三年级信息技术下册教案资讯】宁夏三年级信息技术下册教案足球知识与常识 - 足球百科 - 599比分...
  19. VB对象及其属性、事件和方法
  20. 微软云和阿里云的区别

热门文章

  1. 深入解析Scheduler
  2. doris core安装报错Makefile:158: recipe for target 'processor.o' failed make: *** [processor.o] Error 1
  3. 数据分析(Python)贡献度分析——帕累托法则
  4. 分享11个网页游戏和9个黑客源码,总有一款适合你
  5. ubuntu 14.04 ADSL 上网失败之解决
  6. GAN的一些经典网络的基本思想
  7. 360浏览器是ie浏览器吗?有什么区别
  8. 笔记本开热点手机一直显示正在获取ip
  9. 图像处理之阈值分割[全局阈值、Otsu阈值和迭代式阈值分割]
  10. 马斯克狠狠地给马云上了一课 | 对话全文实录