小红书item_get接口JSON数据解析指南
一、核心解析逻辑
通过Python的json模块解析小红书item_get接口返回的JSON数据,核心步骤如下:
1. 数据获取与解析
python
import json |
# 示例JSON数据(实际使用需替换为API返回内容) |
json_data = '''{ |
"title": "2023新款女装短袖t恤", |
"price": 8.8, |
"item_imgs": [{"url": "http://example.com/detail1.jpg"}], |
"specification": [{"key": "尺寸", "value": "160x75x8mm"}], |
"interact_info": {"liked_count": 1000} |
}''' |
# 解析为Python字典 |
data = json.loads(json_data) |
2. 字段提取示例
python
# 基础字段 |
title = data.get('title', '') |
price = data.get('price', 0.0) |
# 图片列表处理 |
detail_urls = [img['url'] for img in data.get('item_imgs', [])] |
# 规格参数处理 |
specs = [f"{spec['key']}: {spec['value']}" for spec in data.get('specification', [])] |
# 互动数据 |
likes = data['interact_info'].get('liked_count', 0) |
二、完整数据结构解析
接口返回的JSON数据包含以下核心字段:
字段类别 | 字段名 | 示例值 | 说明 |
---|---|---|---|
商品基本信息 | title | "2023新款女装短袖t恤" | 商品标题 |
price | 8.8 | 当前价格 | |
original_price | 10.0 | 原价 | |
num | 100 | 库存数量 | |
图片信息 | pic_url | "http://example.com/main.jpg" | 主图URL |
item_imgs | [{"url": "..."}] | 详情图列表 | |
规格参数 | specification | [{"key": "尺寸", "value": "160x75x8mm"}] | 商品规格 |
售后服务 | return_policy | "7天无理由退换货" | 退换政策 |
warranty | "1年" | 保修期 | |
评价信息 | total_reviews | 1000 | 评价总数 |
positive_rate | 95.0 | 好评率 | |
互动数据 | liked_count | 1000 | 点赞数 |
comment_count | 200 | 评论数 | |
作者信息 | nick | "某品牌官方旗舰店" | 卖家昵称 |
city | "上海" | 所在城市 |
三、完整解析代码示例
python
import json |
def parse_item_data(json_str): |
data = json.loads(json_str) |
# 基础信息 |
result = { |
"商品标题": data.get('title', ''), |
"当前价格": data.get('price', 0.0), |
"原价": data.get('original_price', 0.0), |
"库存": data.get('num', 0), |
"品牌": data.get('brand', ''), |
"主图URL": data.get('pic_url', '') |
} |
# 图片处理 |
result["详情图"] = [img['url'] for img in data.get('item_imgs', [])] |
result["属性图"] = [img['url'] for img in data.get('prop_imgs', [])] |
# 规格参数 |
specs = [] |
for spec in data.get('specification', []): |
specs.append(f"{spec.get('key', '')}: {spec.get('value', '')}") |
result["规格参数"] = "; ".join(specs) |
# 服务信息 |
service = data.get('after_service', {}) |
result["退换政策"] = service.get('return_policy', '') |
result["保修期"] = service.get('warranty', '') |
# 互动数据 |
interact = data.get('interact_info', {}) |
result["点赞数"] = interact.get('liked_count', 0) |
result["评论数"] = interact.get('comment_count', 0) |
result["收藏数"] = interact.get('collect_count', 0) |
return result |
# 测试示例 |
if __name__ == "__main__": |
test_data = '''{ |
"title": "测试商品", |
"price": 99.9, |
"item_imgs": [{"url": "img1.jpg"}, {"url": "img2.jpg"}], |
"specification": [{"key": "颜色", "value": "红色"}], |
"interact_info": {"liked_count": 150} |
}''' |
parsed = parse_item_data(test_data) |
for k, v in parsed.items(): |
print(f"{k}: {v}") |
四、关键注意事项
- 字段缺失处理:使用
.get()
方法并提供默认值,避免KeyError - 嵌套结构处理:对列表/字典类型字段进行遍历处理
- 数据类型验证:价格/数量等字段建议转换为数值类型
- 异常处理:建议添加try-except处理JSON解析错误
- 实际调用:正式环境需通过API密钥生成签名,并处理API返回状态码
通过以上方法,可系统化解析小红书item_get接口返回的JSON数据,提取商品核心信息、图片资源、规格参数及互动数据等关键业务指标。