Python API教程:API入门

简介: 一个API,或被称为应用程序接口,是一个服务器为你提供一个接收或发送数据的代码。API通常用来接收数据。本文就集中焦点在此话题中。当我们想从一个API中接收数据,我们需要开始请求。请求可以包含整个Web。例如,你可以浏览博客文章。你的浏览器开始请求我们的Web服务器,会返回整个网页内容。

什么是API?


一个API,或被称为应用程序接口,是一个服务器为你提供一个接收或发送数据的代码。API通常用来接收数据。


本文就集中焦点在此话题中。


当我们想从一个API中接收数据,我们需要开始请求。请求可以包含整个Web。例如,你可以浏览博客文章。你的浏览器开始请求我们的Web服务器,会返回整个网页内容。

7b349ec277308c7a920f0fcf70e3646.png




API请求工作都遵循类似的路径,你发布一个请求到一个API服务器,它返回给你请求的数据。


如何在Python中发起API请求


在Python中,通常使用通用扩展库来发起API请求,这个库称为:Request库(https://2.python-requests.org/en/master/)。该请求库一分属于Python标准库,但需要我们来安装后才能使用。


一般人们都使用pip来管理Python的包,可以使用如下命令来安装它:


pip install requests

1

如果你使用conda,可以使用如下命令:


conda install requests

1

当我们安装好了这个库,在代码中就可以导入它。这是代码中的第一步:


import requests

1

现在我们已经导入了requests库,现在开始编码。


创建第一个API请求


这是我们第一个API请求,使用GET请求数据,这种方法也是常见的操作。


当我们发起请求,API通常会返回我们返回的编码,告诉是否请求成功。返回代码会立即告诉开发者是否有错误发生。


要创建GET请求,我们通常使用request.get()方法,需要一些URL参数。我们开始给API发起请求,类似于如下格式:


response = requests.get("http://api.open-notify.org/this-api-response-exist/")

1

get()函数返回一个response对象,可以用response.status_code属性来接收请求的状态码:


print(reponse.status_code)

1

它会返回404的状态码。程序员们都会知道,这是服务器端告诉我们,请求的文件不存在。


来看常见的API状态码


每次请求服务器都会返回状态码。以下是GET请求时相关的一些代码:


200:一切正常,结果已返回(如果有)。


301:服务器将重定向到其它节点。当切换域名或更改节点名称时,会发生这种情况。


400:服务器认为你发出了错误的请求。当没有正确发送数据时,会发生这种情况。


401:服务器认为您未通过身份验证。许多API都需要登录证书,因此当您没有发送正确的证书来访问API时,就会发生这种情况。


403:您尝试访问的资源被禁止:您没有正确的权限才能查看它。


404:在服务器上找不到要访问的资源。


503:服务器尚未准备好处理请求。


可以看到以4和5开头的都代表某种错误。以2开头的状态码表示成功。


API文档


为了确保人们能够正确发出请求,在使用API时,请务必参考API文档。编写文档会让人们有所畏惧,但使用的越来越多,你会发现它变得越来越容易。


我们将使用Open Notify API(Open Notify - Page Not Found


通常,指定服务器上会提供多个API,这些API每一个都称为节点。我们将使用的第一个节点是:


http://api.open-notify.org/astros.json


它返回有关当前太空中宇航员的数据。


我们使用如下代码,向该API发起GET请求:


response = requests.get("http://api.open-notify.org/astros.json")print(response.status_code)

1

200


它将返回200代码,告诉我们请求成功了。API文档上告诉我们,它会返回Json数据。我们使用response.json()来接收从API返回的数据。


print(response.json())
{'message': 'success', 'people': [{'name': 'Alexey Ovchinin', 'craft': 'ISS'}, {'name': 'Nick Hague', 'craft': 'ISS'}, {'name': 'Christina Koch', 'craft': 'ISS'}, {'name': 'Alexander Skvortsov', 'craft': 'ISS'}, {'name': 'Luca Parmitano', 'craft': 'ISS'}, {'name': 'Andrew Morgan', 'craft': 'ISS'}], 'number': 6}

1

2

3

在Python中使用JSON数据


JSON是API的标准语言。它是一种编码数据结构,可以确保被机器有效读取。


JSON很像Python的列表、字典、字符串和整数,我们可以将JSON视为字符串表示这些对象的组合。


328d9c18045e4b467d4664db1f9c54d.png



Python对JSON文件提供了json的软件,用来解析转换JSON。json软件包是标准库的一部分,无需额外安装即可使用,即可以将列表和字典转换为JSON,也可以将字符转换为列表和字典。


json库有以下两个功能:


json.dumps()


用来接收一个Python对象,并将其转换为字符串;


json.loads()


接收JSON字符串,并将其转换为Python对象。


相关文章
|
5天前
|
测试技术 PHP 索引
CANopen for Python 使用教程(二)
CANopen for Python 使用教程(二)
20 5
|
7天前
|
数据采集 存储 JSON
Python爬虫开发:BeautifulSoup、Scrapy入门
在现代网络开发中,网络爬虫是一个非常重要的工具。它可以自动化地从网页中提取数据,并且可以用于各种用途,如数据收集、信息聚合和内容监控等。在Python中,有多个库可以用于爬虫开发,其中BeautifulSoup和Scrapy是两个非常流行的选择。本篇文章将详细介绍这两个库,并提供一个综合详细的例子,展示如何使用它们来进行网页数据爬取。
|
5天前
|
XML 编解码 数据可视化
MoJoCo 入门教程(六)Python LQR 教程
MoJoCo 入门教程(六)Python LQR 教程
7 2
MoJoCo 入门教程(六)Python LQR 教程
|
7天前
|
区块链 Python
最详细Python打包exe教程,并修改图标,只需30秒
最详细Python打包exe教程,并修改图标,只需30秒
20 4
最详细Python打包exe教程,并修改图标,只需30秒
|
2天前
|
XML 程序员 数据格式
豆瓣评分8.6!Python社区出版的Python故事教程,太强了!
Python 是活力四射的语言,是不断发展中的语言。就连使用 Python 多年的行者也不敢说对 Python 的方方面面都了解并可以自由运用,想必读者可能更加无法快速掌握所有重点技巧了。 今天给小伙伴们分享的这份手册是用互动的开发故事来探讨Pyfhonic开发的故事书籍,是一本Python语言详解书籍,由Python的行者根据自身经验组织而成,是为从来没有听说过Python的其他语言程序员准备的一份实用的导学性质的书,笔者试图将优化后的学习体验,通过故事的方式传达给读者。对于零基础的小白来说更建议入门后再来品读。
|
4天前
|
弹性计算 API 开发工具
揭秘Python与阿里云API的神秘邂逅!流式处理的魔法之旅,一场颠覆想象的技术盛宴!
【8月更文挑战第15天】在数字世界的广阔舞台上,Python与阿里云API的相遇,就像是一场命中注定的邂逅。它们携手共舞,为我们带来了流式处理的魔法之旅。本文将揭开这场神秘邂逅的面纱,带你领略Python与阿里云API之间的奇妙互动。让我们一起踏上这场颠覆想象的技术盛宴,探索流式处理的无限可能!
21 7
|
4天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。
|
4天前
|
程序员 数据库连接 API
分享一个解决 EF 性能低的思路,通过 Python 访问心跳侦测 API 保持 EF 在线
分享一个解决 EF 性能低的思路,通过 Python 访问心跳侦测 API 保持 EF 在线
|
5天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。 今天给小伙伴们分享的这份Python数据分析入门手册本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。
|
7天前
|
JSON 算法 API
京东以图搜图功能API接口调用算法源码python
京东图搜接口是一款强大工具,通过上传图片即可搜索京东平台上的商品。适合电商平台、比价应用及需商品识别服务的场景。使用前需了解接口功能并注册开发者账号获取Key和Secret;准备好图片的Base64编码和AppKey;生成安全签名后,利用HTTP客户端发送POST请求至接口URL;最后解析JSON响应数据以获取商品信息。