如何在 Python 中进行 API 调用

如今,数据至关重要,因为它驱动 应用程序 网站、数据科学、机器学习模型等。 和企业。因此,了解如何获取此数据来为您的应用程序提供服务非常重要。

什么是 API?

简而言之,API就像一个通道,允许应用程序 交流 发送请求,接收数据,反之亦然 彼此。

进行 API 调用

有不同的方法 在 Python 中获取数据 例如, socket . 对于这篇文章,我们将使用requestsPython 中的模块。该requests模块是一个简单而优雅的 HTTP 库。要安装此库,请使用以下命令:

pip install requests

要检查安装的版本,请使用以下命令:

pip freeze | grep requests

requests==2.22.0

看起来您的环境现在已准备好抛出一些requests.

defget_data(self, api):

response=requests.get(f"{api}")

ifresponse.status_code==200:

print("sucessfully fetched the data")

self.formatted_print(response.json())

else:

print(f"Hello person, there's a {response.status_code} error with your request")

如上所示,我们首先检查状态码,然后打印数据。如何在 Windows 中使用 Msconfig 来加速 Windows 启动此代码告诉我们根据我们的请求收到的响应。该200代码告诉我们已成功收到信息。多个代码表示不同的响应,如下图:

代码

地位

描述

200

好的

请求已完成。

201

已创建

已成功创建新资源。

400

错误的请求

请求无效。

401

未经授权

该请求不包含身份验证令牌或身份验证令牌已过期。

403

禁止

客户端无权访问所请求的资源。

404

未找到

找不到请求的资源。

405

方法不允许

资源不支持请求中的 HTTP 方法。例如,DELETE 方法不能与代理 API 一起使用。

409

冲突

由于冲突,请求无法完成。例如,如果给定的文件或文件夹名称已存在于父位置,则 POST ContentStore Folder API 无法完成。

500

内部服务器错误

由于服务器端的内部错误,请求未完成。

503

暂停服务

服务器不可用。

同样,我们也可以通过一些参数进行API调用。在这种情况下,让我们获取特定用户的文章:我。

parameters= {

"username": "kedark"

}

我已将参数存储在一个变量中;现在,让我们使用相同的参数进行 API 调用。

defget_user_data(self, api, parameters):

response=requests.get(f"{api}", params=parameters)

ifresponse.status_code==200:

print("sucessfully fetched the data with parameters provided")

self.formatted_print(response.json())

else:

print(

f"Hello person, there's a {response.status_code} error with your request")

要在我们的程序中打印数据,我们将使用该response.json()方法,该方法返回结果的 JSON 对象(如果结果以 JSON 格式编写;否则,它会引发错误)。

同样,我们有不同的方法会返回不同的信息。

属性/方法

描述

表观编码

返回表观编码

关闭()

关闭与服务器的连接

内容

返回响应的内容,以字节为单位

饼干

返回一个 CookieJar 对象,其中包含从服务器发回的 cookie

过去

返回一个时间增量对象,其中包含从发送请求到响应到达所经过的时间

编码

返回用于解码 r.text 的编码

标题

返回响应标头的字典

历史

返回保存请求历史的响应对象列表(URL)

is_permanent_redirect

如果响应是永久重定向的 URL,则返回 True,否则返回 False

is_redirect

如果响应被重定向,则返回 True,否则返回 False

iter_content()

迭代响应

iter_lines()

遍历响应行

JSON()

返回结果的 JSON 对象(如果结果是以 JSON 格式编写的;否则,它会引发错误)

链接

返回标题链接

下一个

为重定向中的下一个请求返回 PreparedRequest 对象

好的

如果 status_code 小于 400,则返回 True,否则返回 False

raise_for_status()

如果发生错误,此方法返回一个 HTTPError 对象

原因

返回对应于状态码的文本

要求

返回请求此响应的请求对象

状态代码

返回一个表示状态的数字(200 正常,404 未找到)

文本

以 unicode 格式返回响应的内容

网址

返回响应的 URL

一个一个地尝试它们是一个很好的练习。此数据现在可用于提供您的应用程序。

代码

导入请求

导入 json

类 MakeApiCall:

def get_data(自我,API):

响应 = requests.get(f"{api}")

如果 response.status_code == 200:

print("获取数据成功")

self.formatted_print(response.json())

别的:

打印(

f“你好,你的请求有一个{response.status_code}错误”)

def get_user_data(自我,API,参数):

response = requests.get(f"{api}", 参数=参数)

如果 response.status_code == 200:

print("根据提供的参数成功获取数据")

self.formatted_print(response.json())

别的:

打印(

f“你好,你的请求有一个{response.status_code}错误”)

def formatted_print(self, obj):

text = json.dumps(obj, sort_keys=True, indent=4)

打印(文本)

def __init__(自我,API):

# self.get_data(api)

参数 = {

“用户名”:“kedark”

}

self.get_user_data(api, 参数)

如果 __name__ == "__main__":

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pxr007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值