当前位置: 首页 > ai >正文

Python使用requests调用接口

文章目录

  • 安装requests库
  • 使用requests库调用API
    • 发送Get请求基本示例
    • 带参数的GET请求
    • 处理API认证(如API Key)
    • 错误处理和异常捕获
    • 处理返回值
      • 获取状态
      • 获取用户ID
      • 获取用户名和详细信息
    • 处理嵌套结构或列表返回值
      • 获取所有用户信息列表中的每个用户的信息

在Python中使用requests库来调用外部API。

安装requests库

如果你还没有安装requests库,你可以通过pip来安装它:

pip install requests

使用requests库调用API

发送Get请求基本示例

import requests
# 定义API的URL
url = 'https://api.example.com/data'# 发送GET请求
response = requests.get(url)# 检查请求是否成功
if response.status_code == 200:# 解析JSON响应data = response.json()print(data)
else:print("请求失败,状态码:", response.status_code)

带参数的GET请求

如果你需要向API传递参数,可以使用params参数:

import requestsurl = 'https://api.example.com/data'
params = {'key1': 'value1', 'key2': 'value2'}response = requests.get(url, params=params)
if response.status_code == 200:data = response.json()print(data)
else:print("请求失败,状态码:", response.status_code)
POST请求
如果你需要向API发送POST请求,可以这样做:import requestsurl = 'https://api.example.com/data'
payload = {'key1': 'value1', 'key2': 'value2'}response = requests.post(url, json=payload)  # 使用json参数发送JSON数据
if response.status_code == 200:data = response.json()print(data)
else:print("请求失败,状态码:", response.status_code)

处理API认证(如API Key)

很多API要求提供认证信息,比如API Key。这可以通过在请求头中添加认证信息来实现:

import requestsurl = 'https://api.example.com/data'
headers = {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'}  # 使用Bearer令牌进行认证response = requests.get(url, headers=headers)
if response.status_code == 200:data = response.json()print(data)
else:print("请求失败,状态码:", response.status_code)

错误处理和异常捕获

在调用API时,处理可能的错误是很重要的。你可以使用try-except块来捕获requests可能抛出的异常:

import requestsurl = 'https://api.example.com/data'
try:response = requests.get(url)response.raise_for_status()  # 如果响应状态码不是200,将抛出HTTPError异常data = response.json()print(data)
except requests.exceptions.HTTPError as errh:print("Http Error:", errh)
except requests.exceptions.ConnectionError as errc:print("Error Connecting:", errc)
except requests.exceptions.Timeout as errt:print("Timeout Error:", errt)
except requests.exceptions.RequestException as err:print("OOps: Something Else", err)

处理返回值

访问JSON数据中的信息
假设你的JSON数据结构如下:

{"status": "success","data": {"user_id": 12345,"username": "example_user","details": {"email": "user@example.com","phone": "123-456-7890"}}
}

你可以通过键名访问这些信息:

获取状态

status = data['status']
print(status)  # 输出: success

获取用户ID

user_id = data['data']['user_id']
print(user_id)  # 输出: 12345

获取用户名和详细信息

username = data['data']['username']
email = data['data']['details']['email']
phone = data['data']['details']['phone']
print(username)  # 输出: example_user
print(email)     # 输出: user@example.com
print(phone)     # 输出: 123-456-7890

处理嵌套结构或列表返回值

如果JSON数据中包含嵌套的字典或列表,你可以用相同的方法访问它们:

{"status": "success","users": [{"user_id": 12345,"username": "example_user","email": "user@example.com"},{"user_id": 67890,"username": "another_user","email": "another@example.com"}]
}

获取所有用户信息列表中的每个用户的信息

for user in data['users']:user_id = user['user_id']username = user['username']email = user['email']print(f"User ID: {user_id}, Username: {username}, Email: {email}")

通过这些步骤,你可以在Python中有效地调用外部API并处理返回的数据。

http://www.xdnf.cn/news/14297.html

相关文章:

  • SQL Server从入门到项目实践(超值版)读书笔记 17
  • 目标分割数据集大全「包含分割数据标注+训练脚本」 (持续原地更新)
  • Level1.8for循环
  • 【Create my OS】5 内核线程
  • 分割数据集 - 航拍水域分割数据集下载
  • SylixOS armv7 任务切换
  • 【C判断a*a+b*b=c*c且a>=b>0且输出最小的】2022-6-26
  • 包含30个APP客户端UI界面的psd适用于旅游酒店项目
  • 基于ssm智慧乡村旅游服务平台微信小程序源码数据库文档
  • 青少年编程与数学 01-011 系统软件简介 21 杀毒软件及安全软件
  • C++ 网络编程(12)利用单例逻辑实现逻辑类
  • 初探 Pytest:编写并运行你的第一个测试用例
  • .net6接口多个实现类使用特性标记并解析
  • React-router实现原理剖析
  • 基于SVD的推荐系统:详尽的原理与实践解析
  • 网络安全相关概念与技术详解
  • 高速 PCB 设计的材料选择,第 2 部分
  • ubuntu 22.04 安装部署kibana 7.10.0详细教程
  • Linux——libevent库
  • Python实例题:Python计算曲线曲面积分
  • 网页后端开发(基础2--maven单元测试)
  • useMemo vs useCallback:React 性能优化的两大利器
  • 如何通过 noindex 阻止网页被搜索引擎编入索引?
  • 哈希函数结构:从MD到海绵的进化之路
  • AudioLab安卓版:音频处理,一应俱全
  • Redis中的zset的底层实现
  • SeaTunnel与Hive集成
  • Chapter12-API testing
  • 极客时间《后端存储实战课》阅读笔记
  • 快速使用 Flutter 中的 SnackBar 和 Toast