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对象。


相关文章
|
7天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
7天前
|
API
车牌号归属地查询免费API接口教程
本接口用于根据车牌号查询社会车辆的归属地,不支持军车、使馆等特殊车牌。请求地址为 `https://cn.apihz.cn/api/other/chepai.php`,支持 POST 和 GET 请求。请求参数包括 `id`、`key` 和 `words`,返回数据包含车牌归属地信息。示例请求:`https://cn.apihz.cn/api/other/chepai.php?id=88888888&key=88888888&words=川B1234`。
41 21
|
4天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
4天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
4天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
5天前
|
API
获取网页重定向地址免费API接口教程
该API用于获取网页重定向跳转后的最终地址。请求地址为`https://cn.apihz.cn/api/wangzhan/tiaozhuan.php`,支持POST或GET方式。请求参数包括`id`、`key`和`url`,返回数据包含状态码`code`和最终URL`url`。示例返回:`{"code":200,"url":"https://www.baidu.com/"}`。
47 29
|
4天前
|
设计模式 缓存 开发框架
Python中的装饰器:从入门到实践####
本文深入探讨了Python中装饰器的工作原理与应用,通过具体案例展示了如何利用装饰器增强函数功能、提高代码复用性和可读性。读者将学习到装饰器的基本概念、实现方法及其在实际项目开发中的实用技巧。 ####
17 3
|
4天前
|
JSON API 数据格式
如何使用Python开发1688商品详情API接口?
本文介绍了如何使用Python开发1688商品详情API接口,获取商品的标题、价格、销量和评价等详细信息。主要内容包括注册1688开放平台账号、安装必要Python模块、了解API接口、生成签名、编写Python代码、解析返回数据以及错误处理和日志记录。通过这些步骤,开发者可以轻松地集成1688商品数据到自己的应用中。
19 1
|
4天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
11 1
|
6天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。