【干货满满】如何使用Python的requests库调用API接口?

简介: 本文介绍了如何使用 Python 的 requests 库调用 API 接口,涵盖安装方法、GET/POST/PUT/PATCH/DELETE 请求示例、认证方式、异常处理及高级用法(如会话保持和文件上传),帮助开发者高效实现 API 调用。

使用 Python 的requests库调用 API 接口是开发中最常用的方式之一,它简化了 HTTP 请求的处理流程。以下是详细步骤和实战示例,涵盖各种常见场景:
一、准备工作:安装 requests 库
如果尚未安装,先通过 pip 安装:
bash
pip install requests
二、基本调用流程(以 RESTful API 为例)

  1. 导入 requests 库
    python
    运行
    import requests
  2. 发送请求并获取响应
    以调用一个获取商品信息的 GET 接口为例:
    python
    运行

    API地址URL

    url = "https://api.example.com/products/123"

发送GET请求

response = requests.get(url)

查看响应状态码(200表示成功)

print("状态码:", response.status_code)

查看响应内容(默认是字符串格式)

print("响应内容:", response.text)

解析JSON格式的响应(最常用)

if response.status_code == 200:
data = response.json() # 自动解析JSON,返回字典/列表
print("商品名称:", data["name"])
print("商品价格:", data["price"])
三、不同请求类型的调用方式

  1. GET 请求(查询数据)
    常用于获取数据,参数通过 URL 的查询字符串传递:
    python
    运行
    url = "https://api.example.com/products"

请求参数(会自动拼接到URL后面:?category=electronics&page=1)

params = {
"category": "electronics", # 商品分类
"page": 1 # 页码
}

发送带参数的GET请求

response = requests.get(url, params=params)

查看最终请求的URL

print("请求URL:", response.url) # 输出:https://api.example.com/products?category=electronics&page=1

解析响应

if response.ok: # response.ok 等价于 status_code == 200
products = response.json()["data"]
for product in products:
print(product["id"], product["name"])

  1. POST 请求(提交数据)
    常用于创建资源(如提交表单、创建订单),数据放在请求体中:
    python
    运行
    url = "https://api.example.com/orders"

请求头(告诉服务器数据格式为JSON)

headers = {
"Content-Type": "application/json",
"Authorization": "Bearer your_token_here" # 认证令牌(如有)
}

请求体数据(JSON格式)

payload = {
"product_id": 123,
"quantity": 2,
"address": "北京市朝阳区..."
}

发送POST请求(json参数会自动序列化并设置Content-Type为application/json)

response = requests.post(url, json=payload, headers=headers)

处理响应

if response.status_code == 201: # 201表示资源创建成功
order = response.json()
print("创建订单成功,订单号:", order["order_id"])
else:
print("创建失败:", response.text)

  1. PUT/PATCH 请求(更新数据)
    PUT:全量更新资源(需提供完整数据)
    PATCH:部分更新资源(仅提供需修改的字段)
    python
    运行

    更新商品价格(PATCH示例)

    url = "https://api.example.com/products/123"
    headers = {"Authorization": "Bearer your_token_here"}
    payload = {"price": 3999} # 仅更新价格字段

response = requests.patch(url, json=payload, headers=headers)

if response.ok:
print("更新成功")

  1. DELETE 请求(删除数据)
    python
    运行
    url = "https://api.example.com/products/123"
    headers = {"Authorization": "Bearer your_token_here"}

response = requests.delete(url, headers=headers)

if response.status_code == 204: # 204表示删除成功(无返回内容)
print("删除成功")
四、处理认证与权限
多数 API 需要身份验证,常见方式:

  1. API Key 认证
    python
    运行
    url = "https://api.example.com/data"
    params = {
    "api_key": "your_api_key_here" # 在查询参数中携带API Key
    }
    response = requests.get(url, params=params)
  2. Token 认证(Bearer Token)
    python
    运行
    url = "https://api.example.com/data"
    headers = {
    "Authorization": "Bearer your_token_here" # 在请求头中携带Token
    }
    response = requests.get(url, headers=headers)
  3. 基础认证(Basic Auth)
    python
    运行
    url = "https://api.example.com/data"

    传入用户名和密码,requests会自动处理编码

    response = requests.get(url, auth=("username", "password"))
    五、处理异常与错误
    网络请求可能遇到各种问题,需添加异常处理:
    python
    运行
    url = "https://api.example.com/products"

try:

# 设置超时时间(防止无限等待)
response = requests.get(url, timeout=10)  # 10秒超时

# 主动抛出HTTP错误(如404、500)
response.raise_for_status()

except requests.exceptions.HTTPError as e:
print(f"HTTP错误:{e}") # 如401权限不足、404未找到
except requests.exceptions.ConnectionError:
print("连接错误(可能是URL错误或网络问题)")
except requests.exceptions.Timeout:
print("请求超时")
except requests.exceptions.RequestException as e:
print(f"其他错误:{e}")
else:

# 无异常时处理响应
print("请求成功,数据:", response.json())

六、高级用法

  1. 会话保持(复用连接)
    多次调用同一 API 时,用Session保持连接,提升效率:
    python
    运行

    创建会话对象

    with requests.Session() as session:

    会话中设置全局headers(所有请求都会携带)

    session.headers.update({"Authorization": "Bearer your_token"})

    第一次请求(建立连接)

    response1 = session.get("https://api.example.com/products/1")

    第二次请求(复用连接,速度更快)

    response2 = session.get("https://api.example.com/products/2")

  2. 上传文件
    python
    运行
    url = "https://api.example.com/upload"
    files = {
    "file": open("image.jpg", "rb") # 打开文件(二进制模式)
    }

response = requests.post(url, files=files)
print("上传结果:", response.json())

七、总结
requests库调用 API 的核心流程是:
确定请求类型(GET/POST 等)和 URL;
准备参数(params)、请求体(json/payload)、请求头(headers);
发送请求并处理响应(解析 JSON、判断状态码);
添加异常处理确保代码健壮性。
通过上述方法,可应对绝大多数 API 调用场景,包括电商平台接口、支付接口、第三方服务接口等。实际开发中需结合具体 API 文档调整参数和格式

相关文章
|
10月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
10月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
10月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
11月前
|
JSON 前端开发 API
如何调用体育数据足篮接口API
本文介绍如何调用体育数据API:首先选择可靠服务商并注册获取密钥,接着阅读文档了解基础URL、端点、参数及请求头,然后使用Python等语言发送请求、解析JSON数据,最后将数据应用于Web、App或分析场景,同时注意密钥安全、速率限制与错误处理。
1126 152
|
10月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
929 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
10月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
675 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
10月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
345 11
|
10月前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
10月前
|
存储 缓存 算法
亚马逊 SP-API 深度开发:关键字搜索接口的购物意图挖掘与合规竞品分析
本文深度解析亚马逊SP-API关键字搜索接口的合规调用与商业应用,涵盖意图识别、竞品分析、性能优化全链路。通过COSMO算法解析用户购物意图,结合合规技术方案提升关键词转化率,助力卖家实现数据驱动决策,安全高效优化运营。
|
11月前
|
人工智能 运维 监控
阿里云 API 聚合实战:破解接口碎片化难题,3 类场景方案让业务响应提速 60%
API聚合破解接口碎片化困局,助力开发者降本增效。通过统一中间层整合微服务、第三方接口与AI模型,实现调用次数减少60%、响应提速70%。阿里云实测:APISIX+函数计算+ARMS监控组合,支撑百万级并发,故障定位效率提升90%。
798 0

推荐镜像

更多