赞
踩
如今,数据至关重要,因为它驱动 应用程序 网站、数据科学、机器学习模型等。 和企业。因此,了解如何获取此数据来为您的应用程序提供服务非常重要。
简而言之,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__":
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。