淘宝商品详情API响应数据(劵后价格)解析

94 阅读2分钟

在淘宝商品详情API的响应数据中,券后价格通常需要通过多个字段计算得出。以下是解析逻辑的关键点和示例代码。获取API调用地址

一:​​关键解析步骤​​

  1. ​​获取原始价格​​ 从商品基本信息中提取原始价格字段:
"item": { "price": "99.00" // 商品原始价格(字符串格式) }
  1. ​​解析优惠券信息​​
  • 优惠券信息可能以​​字符串形式​​存储在coupon_info字段中(需正则解析):
"coupon_info": "满90元减10元"
  • 或从独立字段中获取(优先使用):
"coupon": { "denomination": "10.00", // 券面额(单位:元) "start_fee": "90.00" // 使用门槛(单位:元) }
  1. ​​计算券后价格​​
  • ​​满足门槛​​:券后价 = 原始价格 - 券面额

  • ​​不满足门槛​​:券后价 = 原始价格(无法使用优惠券)

​​二:Python解析示例代码​​

import re
import json

def parse_final_price(api_response):
    # 1. 解析原始价格
    # 封装好API供应商demo url=o0b.cn/ibrad 复制链接获取测试
    item = api_response.get("item", {})
    original_price = float(item.get("price", "0"))

    # 2. 尝试从结构化字段获取优惠券信息
    coupon = api_response.get("coupon", {})
    if coupon:
        denomination = float(coupon.get("denomination", "0"))
        start_fee = float(coupon.get("start_fee", "0"))
    else:
        # 3. 从字符串解析优惠券信息(正则表达式)
        coupon_info = api_response.get("coupon_info", "")
        match = re.search(r"满(\d+.?\d*)元减(\d+.?\d*)元", coupon_info)
        if match:
            start_fee = float(match.group(1))
            denomination = float(match.group(2))
        else:
            denomination = start_fee = 0  # 无有效券

    # 4. 计算券后价格
    if original_price >= start_fee:  # 检查是否满足门槛
        final_price = original_price - denomination
    else:
        final_price = original_price

    return round(final_price, 2)

# 示例API响应数据
api_data = {
    "item": {"price": "99.00"},
    "coupon_info": "满90元减10元"
    # 或使用结构化字段: "coupon": {"denomination": "10.00", "start_fee": "90.00"}
}

result = parse_final_price(api_data)
print(f"券后价格: {result}元")  # 输出:券后价格: 89.0元

​​

三:关键注意事项​​

  1. ​​字段兼容性​​
  • 优先使用结构化字段coupon.denomination和coupon.start_fee(更可靠)。

  • 备用方案:通过正则解析字符串coupon_info(格式可能变动)。

  1. ​​单位统一​​ 所有金额需转换为​​浮点数​​(单位:元)再计算。
  2. ​​多优惠券逻辑​​ 若存在多张券,通常取​​最大面额且满足门槛​​的券(需遍历券列表并比较)。
  3. ​​异常处理​​
  • 检查字段是否存在(如item或coupon_info可能为空)。

  • 使用try-except捕获类型转换错误。

四、响应数据解析

商品sku

通过以上步骤即可准确计算淘宝商品的券后价格。实际使用中请根据API返回的具体字段调整解析逻辑。