如何通过Python将pandas DataFrame产品数据直接上传至WooCommerce
实现方法
1. 安装依赖库
首先安装WooCommerce官方提供的Python SDK:
pip install woocommerce
2. 提前准备API凭证
登录你的WordPress后台,进入WooCommerce → 设置 → 高级 → REST API,添加新的API密钥,权限选择「读写」,生成后保存好consumer_key、consumer_secret,以及你的站点根地址。
3. 修改原有代码
不需要生成CSV文件,直接遍历DataFrame的每行数据,构造符合WooCommerce接口规范的请求参数后调用上传接口即可,完整代码示例如下:
import pandas as pd from woocommerce import API # 初始化WooCommerce API客户端 wcapi = API( url="你的站点地址(比如https://example.com)", consumer_key="你的consumer_key", consumer_secret="你的consumer_secret", version="wc/v3", wp_api=True, timeout=30 ) # 你原有爬虫部分的代码 scrapedresult = [] # --- 这里是你原有爬虫逻辑,获取title、price、images变量--- scraped = { 'Name *': title, 'Price': price, 'Image URLs': images, } scrapedresult.append(scraped) # --- 爬虫逻辑结束 --- df = pd.DataFrame(scrapedresult) print(df) # 遍历DataFrame上传产品 for index, row in df.iterrows(): # 构造符合WooCommerce要求的产品数据 product_data = { "name": row['Name *'], "regular_price": str(row['Price']), # Woo要求价格为字符串格式 "images": [{"src": img_url} for img_url in row['Image URLs']] # 你可以在这里添加更多产品字段,比如描述、库存、分类等 } # 调用创建产品接口 response = wcapi.post("products", product_data) # 打印上传结果,方便排查问题 if response.status_code == 201: print(f"产品{row['Name *']}上传成功,产品ID:{response.json()['id']}") else: print(f"产品{row['Name *']}上传失败,错误信息:{response.json()}")
优化建议
- 批量上传产品时可以使用批量接口
wcapi.post("products/batch", {"create": 产品列表}),一次最多上传100个产品,大幅提升上传效率 - 可添加异常捕获逻辑处理网络波动、接口超时等异常情况
- 如果需要避免重复上传,可先调用产品查询接口根据名称或者自定义SKU判断产品是否已存在,存在则调用PUT接口更新,不存在再创建
内容的提问来源于stack exchange,提问作者lanavargas2002
相关产品推荐
相关产品推荐

