You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CSV/Excel文件作为输入批量调用POST接口更新产品数据

实现CSV/Excel批量调用单条更新API的方案

完全可以通过CSV或Excel文件作为输入,循环遍历每行数据调用API实现批量更新。核心思路是读取文件中的每一行记录,将其映射到API要求的请求格式中,逐一发送POST请求。

修改后的完整代码

import pandas as pd
import requests
import json
import time  # 用于控制请求间隔,避免触发API速率限制

# Authentication part of the code(保留你的认证逻辑)
# 假设这里已经正确获取到包含access_token的data变量

url = "https://api-gateway.com/api"

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + data['access_token'],
}

# 读取文件:CSV用read_csv,Excel用read_excel
# 替换为你的文件路径
df = pd.read_csv("products_update.csv")
# df = pd.read_excel("products_update.xlsx")

# 遍历每行数据,发送API请求
for index, row in df.iterrows():
    # 构造符合API要求的payload
    payload = json.dumps({
        "supplierReference": "XX23",
        "products": [{
            "Distributor": row["Distributor"],
            "Description": row["Description"],
            "Price": str(row["Price"]),  # 确保价格是字符串类型,根据API要求调整
            "Brand": row["Brand"]
        }]
    })
    
    try:
        response = requests.post(url, headers=headers, data=payload, verify=True)
        response.raise_for_status()  # 抛出HTTP错误异常
        response_data = json.loads(response.text)
        print(f"第{index+1}条数据更新成功:{response_data}")
        
        # 如果API有速率限制,添加延时
        time.sleep(1)
    except requests.exceptions.RequestException as e:
        print(f"第{index+1}条数据更新失败:{str(e)}")

关键注意事项

  • 文件格式匹配:确保CSV/Excel文件的列名与API要求的字段完全一致(Distributor、Description、Price、Brand),否则会出现字段映射错误。
  • 数据类型适配:根据API文档确认字段类型,比如示例中Price转为字符串,若API要求数值类型则直接使用row["Price"]。
  • 异常处理:加入try-except块可以避免某一行数据出错导致整个批量任务中断,同时方便记录错误信息。
  • 速率限制:多数API会有请求频率限制,通过time.sleep()添加适当间隔,避免被封禁。
  • 结果记录:可以将每次请求的响应结果写入日志文件,后续便于核对更新状态。

内容的提问来源于stack exchange,提问作者CED

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:52:40