淘宝 API 详情类 JSON 结构化解析实战(核心章节)

知名用户180079054738小时前未分类6

前言

(可直接放入你的技术文章,纯技术、带代码、带解析、带踩坑点)

一、前言:为什么结构化解析是核心?

淘宝商品详情 API 返回的是多层嵌套 JSON,包含商品基础信息、SKU、图片、价格、营销、物流、服务等数十个字段。
直接使用原始数据会出现:
  • 字段缺失导致程序崩溃

  • SKU 解析混乱

  • 价格类型不统一

  • 图片防盗链无法展示

  • HTML 详情无法直接复用

结构化解析 = 把杂乱嵌套 JSON → 干净、统一、可直接入库 / 前端使用的标准数据模型

二、解析目标

把淘宝 API 原始返回,解析成统一结构:
  1. 商品基础信息(ID、标题、类目、状态)

  2. 价格体系(原价、促销价、券后价)

  3. SKU 规格(规格名、规格值、价格、库存)

  4. 图片资源(主图、详情图、去防盗链处理)

  5. 商品详情(HTML 清洗、文本提取)

  6. 销售信息(销量、发货地、服务)


三、原始 JSON 结构回顾(简化版)

json
{
    "item_get_response": {
        "item": {
            "num_iid": "680123456789",
            "title": "夏季纯棉短袖T恤",
            "price": "89.00",
            "promotion_price": "59.00",
            "pic_url": "https://img.taobao.com/xxx.jpg",
            "item_imgs": [ {"url":"https://img.taobao.com/xxx1.jpg"}, ... ],
            "skus": {
                "sku": [
                    {
                        "sku_id": "123456",
                        "price": "59.00",
                        "quantity": 100,
                        "properties_name": "颜色:白色;尺码:M"
                    }
                ]
            },
            "desc": "<p>商品详情HTML</p>",
            "sales": 12345,
            "free_ship": true
        }
    }}

四、结构化解析实战(分步 + 代码 + 说明)

1. 根节点解析:提取 item 主体

技术点:淘宝 API 固定包裹在 item_get_response → item

python运行

# 解析入口def parse_item(json_data):

    # 1. 提取根节点
    response = json_data.get("item_get_response", {})
    item = response.get("item", {})
    if not item:
        raise Exception("商品数据为空")
    return item

2. 基础字段解析(最稳定、必用)

python运行

num_iid = item.get("num_iid", "")         # 商品唯一IDtitle = item.get("title", "")             # 标题cid = item.get("cid", "")                  # 类目IDcategory_name = item.get("category_name", "")  # 类目名称location = item.get("location", "")        # 发货地seller_nick = item.get("nick", "")         # 卖家昵称shop_name = item.get("shop_name", "")      # 店铺名detail_url = item.get("detail_url", "")    # 商品链接

踩坑点
  • num_iid 必须字符串类型,不能转数字(避免超长精度丢失)


3. 价格体系解析(重点)

淘宝价格字段多,必须统一结构化:
python

运行

# 价格统一格式化price_data = {

    "origin_price": float(item.get("price", 0)),        # 原价
    "sale_price": float(item.get("promotion_price", 0)),# 促销价
    "final_price": 0.0}# 最终价 = 促销价优先,无促销则用原价price_data["final_price"] = price_data["sale_price"] or price_data["origin_price"]
业务价值:价格监控、比价系统核心字段

4. 图片资源解析(去防盗链)

技术点:淘宝图片有防盗链,需标准化处理
python

运行

# 主图main_pic = item.get("pic_url", "")# 详情图列表item_imgs = item.get("item_imgs", [])img_list = [img.get("url", "") for img in item_imgs if img.get("url")]# 清洗:去掉协议头,兼容HTTPS/HTTPimg_list = [

    url.replace("http:", "https:") for url in img_list]
实战用途:自有商城、小程序、APP 商品展示

5. SKU 规格结构化解析(最复杂、最核心)

目标:

颜色:白色;尺码:M 解析为:

plaintext

{

    "specs": {"颜色":"白色","尺码":"M"},
    "price":59,
    "stock":100
}

解析代码

python

运行

sku_list = []sku_array = item.get("skus", {}).get("sku", [])for sku in sku_array:

    sku_id = sku.get("sku_id", "")
    price = float(sku.get("price", 0))
    stock = sku.get("quantity", 0)
    props_name = sku.get("properties_name", "")
    
    # 拆分规格:颜色:白色;尺码:M
    specs = {}
    if props_name:
        prop_arr = props_name.split(";")
        for p in prop_arr:
            if ":" in p:
                k, v = p.split(":", 1)
                specs[k] = v
    
    sku_info = {
        "sku_id": sku_id,
        "price": price,
        "stock": stock,
        "specs": specs    }
    sku_list.append(sku_info)
这是电商系统必备结构:下单、库存、规格选择全靠它

6. 商品详情 HTML 解析与清洗

python

运行

desc_html = item.get("desc", "")# 清洗:去掉淘宝无用标签、懒加载、内链def clean_html(html):

    html = html.replace("data-src", "src")   # 懒加载替换
    html = html.replace("taobao.com", "")    # 可按需过滤
    return html
用途:同步到自有商城、小程序详情页

7. 销售与服务结构化

python

运行

sales_info = {

    "sales": item.get("sales", 0),               # 销量
    "free_shipping": item.get("free_ship", False), # 是否包邮
    "service": item.get("service", ""),           # 服务:七天无理由
    "is_on_sale": True  # 可根据字段判断上下架}

五、最终输出:标准结构化商品模型

json

{

    "num_iid": "680123456789",
    "title": "夏季纯棉短袖T恤",
    "price": {
        "origin": 89.00,
        "sale": 59.00,
        "final": 59.00
    },
    "images": {
        "main": "https://img.taobao.com/xxx.jpg",
        "list": [ "https://img.taobao.com/xxx1.jpg", ... ]
    },
    "skus": [
        {
            "sku_id": "123456",
            "price": 59.00,
            "stock": 100,
            "specs": { "颜色": "白色", "尺码": "M" }
        }
    ],
    "sales": 12345,
    "free_shipping": true,
    "desc": "<p>清洗后的HTML</p>"}
这就是企业级标准结构:可直接入库、给前端、给 ERP、给小程序

六、本章技术总结(可直接放文章结尾)

淘宝商品详情 API 的 JSON 结构化解析,是电商数据开发中最关键、最实用、最容易踩坑的环节。
核心价值:
  1. 统一字段,消除 API 嵌套混乱

  2. SKU 规格化,支撑下单、库存、规格选择

  3. 价格标准化,支撑比价、监控、营销

  4. 图片 / 详情清洗,支持多端展示

  5. 输出标准模型,可直接用于业务系统


相关文章

(淘宝 / 京东)商品评论 API 接口:技术实战案例与架构分析

一、引言在电商数据驱动的时代,商品评论是洞察用户需求、优化产品体验、监控竞品动态的核心数据。淘宝、京东作为国内头部电商平台,均开放官方商品评论 API,相较于爬虫,具备合规性强、数据稳定、字段标准、风...

用Java语言解析京东商品评论接口的JSON数据时,如何处理可能出现的异常情况?

Java 解析京东商品评论 API JSON 数据:异常处理完整方案在 Java 调用京东商品评论 API 并解析 JSON 数据时,异常可能出现在 HTTP 请求阶段(如网络波动、权限失效...

python采集微店商品详情API接口系列,json数据返回

以下是基于微店商品详情 API 接口的 Python 采集系列实现,涵盖基础详情、规格参数、库存状态、卖家信息等多维度数据采集,并以 JSON 格式返回。代码适配微店公开 API 的请求规则,包含反爬...

得物商品详情API接口的技术调用要点之参数规范

你现在聚焦于得物商品详情 API 接口调用中参数规范这一核心要点,这是避免请求失败、保证数据精准的关键环节 —— 参数的格式、取值、传递方式哪怕有微小偏差,都可能导致接口返回错误或数据不全。以下从核心...

Python 调用淘宝商品详情 API:异常处理完整方案(生产级可用)

在实际调用淘宝 API 时,异常几乎一定会出现,比如:网络超时、签名错误、商品下架、限流、服务器异常等。如果不处理异常,程序会直接崩溃。我给你一套自带完整异常处理、可直接上线使用的代码,包含:网络异常...

淘宝京东1688商品详情API接口系列,json数据返回

淘宝、京东、1688的商品详情API接口均通过JSON格式返回数据,涵盖商品基础信息、价格、库存、图片、规格、评价等核心字段。以下是各平台接口的详细说明及JSON数据示例:一、淘宝商品详情API接口核...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。