一、核心解析逻辑
通过Python的json模块解析小红书item_get接口返回的JSON数据,核心步骤如下:
1. 数据获取与解析
makefile
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. 字段提取示例
ini
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 | "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
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数据,提取商品核心信息、图片资源、规格参数及互动数据等关键业务指标。