Python请求示例JD商品评论API接口,json数据返回
京东商品评论API接口需通过京东开放平台申请权限后调用,返回结构化JSON数据。以下是核心要点及示例:
接口接入流程
- 注册开发者账号:
- 创建应用:在控制台创建应用,获取
AppKey
(应用标识)和AppSecret
(密钥)。 - 申请权限:申请“商品评论查询”接口权限(部分接口需商务洽谈)。
- 构造请求:使用HTTP GET/POST调用接口,参数需包含:
- 必填参数:
app_key
、method
(如jingdong.ware.productcomment.get
)、skuId
(商品ID)、page
(页码)、pageSize
(每页数量)。 - 签名参数:通过
AppSecret
对参数按字典序排序后生成MD5签名(sign
)。 - 可选参数:
sortType
(排序方式,如时间倒序5
、点赞数6
)、score
(评分筛选,0=全部,3=好评)。
- 必填参数:
JSON数据结构示例
{ |
"code": 200, |
"message": "success", |
"data": { |
"total": 12500, |
"page": 1, |
"productCommentSummary": { |
"goodRateShow": 98.5, |
"commentCount": 12500, |
"goodCount": 12250, |
"generalCount": 150, |
"poorCount": 100 |
}, |
"hotCommentTagStatistics": [ |
{"name": "物流快", "count": 5000}, |
{"name": "质量好", "count": 3000} |
], |
"comments": [ |
{ |
"userId": "user123456", |
"userNick": "京东会员_abc123", |
"content": "手机运行流畅,拍照效果超出预期", |
"createTime": "2025-06-28 14:30:22", |
"rating": 5, |
"properties": [ |
{"name": "物流速度", "value": "5星"}, |
{"name": "产品质量", "value": "5星"} |
], |
"pictures": ["https://img10.360buyimg.com/.../image.jpg"], |
"reply": { |
"content": "感谢您的认可,我们将持续优化服务", |
"createTime": "2025-06-29 10:15:30" |
}, |
"afterSaleReview": { |
"content": "使用一个月后依然流畅,推荐购买", |
"createTime": "2025-07-02 09:45:18" |
} |
} |
] |
} |
} |
关键字段说明
- 评论列表(comments):
userNick
:用户昵称(脱敏处理,如“jd_123”)。content
:评论正文(支持文本、图片、视频链接)。rating
:评分(1-5星)。properties
:结构化标签(如物流速度、产品质量)。reply
:商家回复内容及时间。afterSaleReview
:追评内容及时间。
- 统计摘要(productCommentSummary):
goodRateShow
:好评率(百分比)。commentCount
:总评论数。goodCount
/generalCount
/poorCount
:好评/中评/差评数。
- 热门标签(hotCommentTagStatistics):标签名称及出现次数(如“物流快”出现5000次)。
Python调用示例
import requests |
import hashlib |
def get_jd_reviews(app_key, app_secret, sku_id, page=1, page_size=10): |
# 构造参数 |
params = { |
"method": "jingdong.ware.productcomment.get", |
"app_key": app_key, |
"timestamp": "20250903153000", |
"v": "2.0", |
"sign_method": "md5", |
"format": "json", |
"skuId": sku_id, |
"page": page, |
"pageSize": page_size, |
"sortType": 5 # 时间倒序 |
} |
# 生成签名 |
sorted_params = sorted(params.items(), key=lambda x: x[0]) |
sign_str = f"{app_secret}{''.join(f'{k}{v}' for k, v in sorted_params)}{app_secret}" |
sign = hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper() |
params["sign"] = sign |
# 发送请求 |
url = "https://api.jd.com/routerjson" |
response = requests.get(url, params=params) |
return response.json() |
# 示例调用 |
reviews = get_jd_reviews("YOUR_APP_KEY", "YOUR_APP_SECRET", "100012014970") |
print(reviews) |
注意事项
- 权限与安全:保护
AppSecret
,避免泄露;接口调用频率需遵守京东限流规则。 - 数据合规:用户昵称、评论内容等需遵守隐私保护政策,禁止非法用途。
- 错误处理:检查
code
状态码(200成功,非0为错误),处理如“权限不足”“参数错误”等异常。
通过以上流程,可高效获取京东商品评论数据,用于市场分析、用户行为研究或竞品对比等场景。