淘宝商品评论 API 返回数据参考(附解析与实战示例)

简介: 淘宝商品评论 API(核心接口如 taobao.item.review.get)是获取商品用户评价数据的官方通道,返回数据以 JSON 格式为主,结构规范且字段丰富,涵盖评论基础信息、用户画像、内容详情、多媒体信息等维度。本文将拆解通用返回结构、核心字段含义、多场景示例及解析注意事项,为开发者提供完整的数据参考指南。

淘宝商品评论 API(核心接口如 taobao.item.review.get)是获取商品用户评价数据的官方通道,返回数据以 JSON 格式为主,结构规范且字段丰富,涵盖评论基础信息、用户画像、内容详情、多媒体信息等维度。本文将拆解通用返回结构、核心字段含义、多场景示例及解析注意事项,为开发者提供完整的数据参考指南。

一、通用返回数据结构(成功 / 失败统一规范)

淘宝开放平台所有 API 均遵循统一的响应格式,评论 API 也不例外,分为 成功响应失败响应 两种结构,便于开发者封装通用解析逻辑。

1. 成功响应通用格式

json

{
  "code": 0,
  "msg": "success",
  "request_id": "123456789abcdef",
  "resp_data": {
    "item_review_get_response": {
      "total_results": 1250,
      "reviews": [
        {
          // 单条评论核心数据
        }
      ],
      "request_id": "123456789abcdef"
    }
  }
}
  • 顶层关键字段说明
  • code: 状态码,0 表示成功,非 0 为失败;
  • msg: 状态描述,成功为 success
  • request_id: 全局请求唯一标识,用于问题排查;
  • resp_data.item_review_get_response: 业务响应体,名称与接口名强关联;
  • total_results: 商品评论总条数,用于分页计算;
  • reviews: 评论数据数组,单页默认返回 20 条,可通过入参 page_size 调整(最大 100)。

2. 失败响应通用格式

json

{
  "code": 40,
  "msg": "error",
  "request_id": "123456789abcdef",
  "resp_data": {
    "error_response": {
      "code": 40,
      "msg": "签名错误",
      "sub_code": "isv.invalid-sign",
      "sub_msg": "签名参数不正确,请检查签名生成逻辑"
    }
  }
}
  • 错误关键字段说明
  • code: 顶层错误码,与业务错误码一致;
  • sub_code: 精准错误类型标识(如 isv.invalid-sign 签名错误、isv.api-rate-limit-exceeded 限流);
  • sub_msg: 具体错误原因,用于定位问题。

二、单条评论核心字段解析(以 taobao.item.review.get 为例)

reviews 数组中的单条评论数据是解析核心,涵盖 基础标识、用户信息、评论内容、多媒体、时效 五大类字段,以下是完整示例及字段说明。

1. 单条评论完整数据示例

json

{
  "id": "9876543210abcdef",
  "num_iid": "689712345678",
  "user_nick": "tbNick123456",
  "user_id": "123456789",
  "user_level": "V3",
  "user_vip": true,
  "content": "纯棉材质很舒服,尺码标准,洗了不缩水,夏天穿透气!",
  "created": "2025-05-10 14:30:00",
  "modified": "2025-05-11 09:15:00",
  "rate": 5,
  "rate_content": "好评",
  "has_more": true,
  "more_content": "穿了一周再来追评,版型宽松不挑身材,搭牛仔裤超好看!",
  "pic_num": 3,
  "pic_urls": [
    "https://img.alicdn.com/imgextra/i1/123456789/O1CN01abcdef123456_!!0-review.jpg",
    "https://img.alicdn.com/imgextra/i2/123456789/O1CN01abcdef123457_!!0-review.jpg",
    "https://img.alicdn.com/imgextra/i3/123456789/O1CN01abcdef123458_!!0-review.jpg"
  ],
  "spec_info": "颜色:白色;尺寸:L",
  "useful_vote": 25,
  "reply": "感谢亲的认可,我们会继续努力做好品质~",
  "reply_created": "2025-05-10 16:20:00"
}

2. 核心字段分类说明

字段分类 字段名 含义说明 数据类型 核心用途
基础标识 id 评论唯一 ID,不可重复 字符串 去重、增量采集的核心标识
num_iid 商品 ID,关联评论所属商品 字符串 多商品评论数据归类
用户信息 user_nick 用户昵称(已脱敏,如 tbNick123456 字符串 用户画像分析
user_id 用户唯一标识(部分接口需申请权限才能获取) 字符串 精准用户行为追踪
user_level 用户等级(如 V1-V6) 字符串 高价值用户评论权重分析
user_vip 是否为淘宝 VIP 用户 布尔值 区分普通 / 付费用户评价倾向
评论内容 content 评论正文 字符串 舆情分析、商品优缺点提取
rate 评分(1-5 星,5 星为好评,1 星为差评) 整数 商品评分统计、口碑计算
rate_content 评分标签(如 “好评”“中评”“差评”) 字符串 快速分类评论倾向
has_more 是否有追评 布尔值 识别深度评价用户
more_content 追评内容(has_more=true 时才有值) 字符串 长期使用反馈分析
多媒体信息 pic_num 晒图数量 整数 评估评论真实性(晒图评论可信度更高)
pic_urls 晒图链接数组(高清图,可直接下载) 数组 商品真实展示素材收集、买家秀运营
时效与互动 created 评论发布时间(格式:YYYY-MM-DD HH:MM:SS) 字符串 增量采集时间筛选、评论热度趋势分析
modified 评论修改时间(用户编辑评论后更新) 字符串 识别用户评价态度变化
useful_vote 评论有用投票数(其他用户点赞数) 整数 高价值评论筛选(点赞多的评论更具参考性)
其他信息 spec_info 评论对应的商品规格(如 “颜色:白色;尺寸:L”) 字符串 不同规格商品口碑对比
reply 商家回复内容 字符串 商家服务质量分析
reply_created 商家回复时间 字符串 响应时效评估(如多久回复用户评论)

三、不同场景下的返回数据差异

淘宝评论 API 的返回字段会根据 接口权限商品类目 有所差异,以下是两类典型场景的差异示例。

1. 差评场景(rate=1

差评数据会包含更多负面反馈信息,部分接口会返回 reason 字段(差评原因):

json

{
  "id": "9876543210abcdeg",
  "num_iid": "689712345678",
  "user_nick": "tbNick654321",
  "rate": 1,
  "rate_content": "差评",
  "content": "材质太薄,洗了一次就变形,不值这个价!",
  "reason": "商品质量差",
  "created": "2025-05-12 10:00:00",
  "pic_num": 1,
  "pic_urls": ["https://img.alicdn.com/imgextra/i4/123456789/O1CN01abcdef123459_!!0-review.jpg"]
}

2. 无晒图 / 无追评场景

非核心字段会返回默认值(如空数组、false),避免解析时出现空指针异常:

json

{
  "id": "9876543210abcdeh",
  "num_iid": "689712345678",
  "content": "物流很快,客服态度好",
  "rate": 5,
  "has_more": false,
  "more_content": "",
  "pic_num": 0,
  "pic_urls": [],
  "reply": ""
}

3. 特殊类目差异(如美妆 / 3C)

  • 美妆类目:会额外返回 use_effect 字段(使用效果,如 “保湿效果好”“不卡粉”);
  • 3C 类目:会额外返回 use_scene 字段(使用场景,如 “办公用”“游戏用”)。

四、数据解析实战示例(Python)

以下是基于 Python 的评论 API 数据解析示例,包含 成功 / 失败判断、核心字段提取、数据格式化 三个核心步骤。

python

运行

import json
def parse_review_api_response(response_data):
    """
    解析淘宝商品评论API返回数据
    :param response_data: API返回的原始JSON字典
    :return: 格式化的评论数据列表 + 总条数
    """
    # 1. 判断请求是否成功
    if response_data.get("code") != 0:
        error_info = response_data["resp_data"]["error_response"]
        raise Exception(
            f"API调用失败:{error_info['msg']} "
            f"(错误码:{error_info['code']},子错误码:{error_info['sub_code']})"
        )
    
    # 2. 提取业务数据
    review_resp = response_data["resp_data"]["item_review_get_response"]
    total = review_resp.get("total_results", 0)
    raw_reviews = review_resp.get("reviews", [])
    
    # 3. 格式化核心字段
    formatted_reviews = []
    for review in raw_reviews:
        formatted = {
            "评论ID": review.get("id"),
            "商品ID": review.get("num_iid"),
            "用户昵称": review.get("user_nick"),
            "评分": review.get("rate"),
            "评论内容": review.get("content"),
            "评论时间": review.get("created"),
            "是否追评": review.get("has_more"),
            "晒图数量": review.get("pic_num"),
            "晒图链接": review.get("pic_urls", []),
            "商家回复": review.get("reply")
        }
        formatted_reviews.append(formatted)
    
    return total, formatted_reviews
# 模拟API返回数据
mock_success_response = {
    "code": 0,
    "msg": "success",
    "request_id": "123456789abcdef",
    "resp_data": {
        "item_review_get_response": {
            "total_results": 1250,
            "reviews": [
                {
                    "id": "9876543210abcdef",
                    "num_iid": "689712345678",
                    "user_nick": "tbNick123456",
                    "rate": 5,
                    "content": "纯棉材质很舒服",
                    "created": "2025-05-10 14:30:00",
                    "has_more": True,
                    "pic_num": 3,
                    "pic_urls": ["https://xxx.jpg"],
                    "reply": "感谢亲的认可"
                }
            ],
            "request_id": "123456789abcdef"
        }
    }
}
# 调用解析函数
try:
    total_count, reviews = parse_review_api_response(mock_success_response)
    print(f"共获取 {total_count} 条评论,本页解析 {len(reviews)} 条")
    print("第一条评论:", json.dumps(reviews[0], ensure_ascii=False, indent=2))
except Exception as e:
    print("解析失败:", str(e))

五、数据解析与使用注意事项

  1. 字段空值处理more_contentpic_urlsreply 等字段可能为空,解析时需判断默认值,避免 KeyError
  2. 时间格式转换created 字段为字符串格式,需转换为 datetime 类型后再进行时间筛选(如增量采集);
  3. 数据去重:以 id 字段作为唯一标识,避免重复存储相同评论;
  4. 权限限制user_iduse_effect 等字段需申请额外权限才能获取,未授权时返回 null
  5. 图片有效期pic_urls 中的链接有效期通常为 30 天,如需长期使用,建议下载后存储至自有服务器;
  6. 限流适配:评论 API 有 QPS 限制(普通应用 1 QPS),解析后的数据建议缓存至 Redis/MySQL,减少重复调用。

六、总结

淘宝商品评论 API 返回数据具有 结构统一、字段规范、场景适配性强 的特点,核心解析重点在于 顶层状态判断单条评论字段提取。开发者需重点关注 id(去重)、created(增量)、content(舆情)、pic_urls(素材)等核心字段,同时做好空值处理与权限适配,才能高效利用评论数据实现商品口碑分析、用户画像构建、买家秀运营等业务场景。

相关文章
|
3月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
4月前
|
JSON 自然语言处理 监控
淘宝关键词搜索与商品详情API接口(JSON数据返回)
通过商品ID(num_iid)获取商品全量信息,包括SKU规格、库存、促销活动、卖家信息、详情页HTML等。
|
6月前
|
数据采集 缓存 监控
八年电商开发血泪史:淘宝评论API的接口处理
本文分享了一位电商开发者八年对接淘宝评论API的实战经验,涵盖接口签名、限流控制、数据清洗、情感分析及实时监控等实用技巧,并附有完整代码示例。
|
3月前
|
数据采集 监控 API
淘宝商品信息批量获取接口技术详解
本文介绍批量获取淘宝商品信息的两种方法:官方API与Python爬虫。涵盖应用场景、技术实现、代码示例及合规注意事项,助您高效采集标题、价格、销量等数据,用于市场分析与竞品监控,兼顾可行性与风险控制。(238字)
458 0
|
机器学习/深度学习 自然语言处理 算法
大数据与机器学习
大数据与机器学习紧密相关,前者指代海量、多样化且增长迅速的数据集,后者则是使计算机通过数据自动学习并优化的技术。大数据涵盖结构化、半结构化及非结构化的信息,其应用广泛,包括商业智能、金融和医疗保健等领域;而机器学习分为监督学习、无监督学习及强化学习,被应用于图像识别、自然语言处理和推荐系统等方面。二者相结合,能有效提升数据分析的准确性和效率,在智能交通、医疗及金融科技等多个领域创造巨大价值。
614 2
|
安全 搜索推荐 Android开发
揭秘安卓与iOS系统的差异:技术深度对比
【10月更文挑战第27天】 本文深入探讨了安卓(Android)与iOS两大移动操作系统的技术特点和用户体验差异。通过对比两者的系统架构、应用生态、用户界面、安全性等方面,揭示了为何这两种系统能够在市场中各占一席之地,并为用户提供不同的选择。文章旨在为读者提供一个全面的视角,理解两种系统的优势与局限,从而更好地根据自己的需求做出选择。
1688 2
|
JavaScript 前端开发 数据安全/隐私保护
boss直聘__zp_stoken__参数分析
boss直聘__zp_stoken__参数分析
1580 1
|
存储 机器学习/深度学习 缓存
加速Python循环的12种方法,最高可以提速900倍
在本文中,我将介绍一些简单的方法,可以将Python for循环的速度提高1.3到900倍。
481 1
|
安全 Go 数据安全/隐私保护
免费升级到 iOS 17 Developer Beta:官方Apple Store升级方案与爱思助手方法比较
免费升级到 iOS 17 Developer Beta:官方Apple Store升级方案与爱思助手方法比较
1332 0
|
监控 NoSQL Dubbo
从一个电商平台的库存同步谈性能优化和方案落地
从一个电商平台的库存同步谈性能优化和方案落地
736 0
从一个电商平台的库存同步谈性能优化和方案落地

热门文章

最新文章