写点什么

快速上手:淘宝 / 天猫商品快递费用 API 返回值解析

  • 2024-10-09
    江西
  • 本文字数:1444 字

    阅读完需:约 5 分钟

在使用淘宝/天猫的 API 进行商品信息获取时,你可能会遇到需要解析快递费用的场景。虽然淘宝/天猫的 API 文档较为详细,但解析返回值可能会对一些开发者来说稍显复杂。以下是一个快速上手的示例,包括如何调用 API 以及解析快递费用返回值。


准备工作注册开发者账号:在淘宝开放平台(https://open.taobao.com/)注册开发者账号,并创建一个应用,获取App Key和App Secret。安装 SDK:淘宝开放平台提供了多种语言的 SDK,你可以根据需要选择合适的 SDK 进行安装。如果没有特别需求,直接使用 HTTP 请求也可以。调用 API 为了获取商品详情(包含快递费用),我们通常会调用 taobao.item.get 接口。下面是一个使用 Python 和 requests 库进行 HTTP 请求的示例。


示例代码 pythonimport requests


import hashlib


import time


import hmac


import base64


import urllib.parse

替换成你的 App Key 和 App Secret

app_key = 'your_app_key'


app_secret = 'your_app_secret'

淘宝 API 网关

gateway_url = 'https://eco.taobao.com/router/rest'

要获取的商品 ID

item_id = '1234567890'

生成签名

def generate_sign(params, app_secret):


params_sorted = sorted(params.items())


sign_content = ''.join(f'{k}{v}' for k, v in params_sorted)


sign_content = sign_content.encode('utf-8')


app_secret_encode = app_secret.encode('utf-8')


sign = hmac.new(app_secret_encode, sign_content, hashlib.md5).digest()


sign = base64.b64encode(sign).decode('utf-8')


sign = urllib.parse.quote_plus(sign, '')


return sign

构造请求参数

params = {


'method': 'taobao.item.get',


'app_key': app_key,


'timestamp': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()),


'v': '2.0',


'format': 'json',


'fields': 'item_id,title,nick,price,post_fee,sku_properties,properties,skus',


'item_id': item_id,


}

生成签名

params['sign'] = generate_sign(params, app_secret)

发送请求

response = requests.get(gateway_url, params=params)


data = response.json()

解析返回结果

if data['taobao_response']['code'] == 200:


item = data['taobao_response']['item_get_response']['item']


title = item['title']


price = item['price']


post_fee = item.get('post_fee', '0.00') # 快递费用,如果没有设置则为 0.00


skus = item.get('skus', [])


print(f"商品标题: {title}")  print(f"商品价格: {price}")  print(f"快递费用: {post_fee}")    # 如果商品有多个SKU,可以进一步解析SKU的快递费用  for sku in skus:      sku_price = sku['price']      sku_post_fee = sku.get('post_fee', '0.00')      print(f"SKU价格: {sku_price}, SKU快递费用: {sku_post_fee}")  
复制代码


else:


print(f"调用 API 失败: {data['taobao_response']['msg']}")解析返回值在上述代码中,我们主要关注 item 对象中的 post_fee 字段,它表示商品的默认快递费用。如果商品有多个 SKU(例如颜色、尺寸等),每个 SKU 也可能有独立的快递费用,这可以通过 skus 列表中的 post_fee 字段来获取。


注意事项 API 调用频率限制:注意淘宝开放平台对 API 调用频率的限制,避免频繁调用导致接口被封禁。字段选择:通过 fields 参数可以指定需要返回的字段,减少不必要的数据传输,提高响应速度。错误处理:在实际应用中,应添加更完善的错误处理逻辑,例如网络异常、API 调用失败等情况。通过以上步骤,你应该能够快速上手并解析淘宝/天猫商品快递费用的 API 返回值。如果你有更复杂的需求,可以查阅淘宝开放平台的官方文档获取更多信息。

用户头像

还未添加个人签名 2023-11-13 加入

还未添加个人简介

评论

发布
暂无评论
快速上手:淘宝/天猫商品快递费用API返回值解析_API 接口_技术冰糖葫芦_InfoQ写作社区