【干货满满】如何使用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 文档调整参数和格式

相关文章
|
4月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
4月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
4月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
382 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
4月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
401 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
4月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
5月前
|
JSON 缓存 供应链
电子元件 item_search - 按关键字搜索商品接口深度分析及 Python 实现
本文深入解析电子元件item_search接口的设计逻辑与Python实现,涵盖参数化筛选、技术指标匹配、供应链属性过滤及替代型号推荐等核心功能,助力高效精准的电子元器件搜索与采购决策。
|
5月前
|
缓存 供应链 芯片
电子元件类商品 item_get - 商品详情接口深度分析及 Python 实现
电子元件商品接口需精准返回型号参数、规格属性、认证及库存等专业数据,支持供应链管理与采购决策。本文详解其接口特性、数据结构与Python实现方案。
|
测试技术 Python
python接口自动化(五)--接口测试用例和接口测试报告模板(详解)
当今社会在测试领域,接口测试已经越来越多的被提及,被重视,而且现在好多招聘信息要对接口测试提出要求。区别于传统意义上的系统级别测试,很多测试人员在接触到接口测试的时候,也许对测试执行还可以比较顺利的上手,但一 提到相关的文档,比如测试用例和报告,就有些不知所措了。这类问题在我加入的几个测试的群里,经常看到一些人在不断提问。   今天就用这篇文章来说说接口测试用例和报告。
876 2
python接口自动化(五)--接口测试用例和接口测试报告模板(详解)
|
Web App开发 网络协议 jenkins
python接口自动化(四)--接口测试工具介绍(详解)
如果有工具,可以大大提高你的效率,可以达到事半功倍,但是不是所有工具都能够支持你完成这个任务。下面我们就来挑选几个常用和常见的工具,简单介绍一下。如果需要或者有兴趣可以在网上查看各种工具对应的资料进行深入人的学习,这里带领大家了解一下,碰到这些工具会用、了解、知道这些工具就达到目的了,不要到时候说到测试工具,一问三不知,一脸懵逼,那样就尴尬
587 1
python接口自动化(四)--接口测试工具介绍(详解)

推荐镜像

更多