首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >京东 API 商品详情数据获取:Python 代码实现与接口返回解析

京东 API 商品详情数据获取:Python 代码实现与接口返回解析

原创
作者头像
Anzexi58
发布2026-04-02 13:34:50
发布2026-04-02 13:34:50
3310
举报
文章被收录于专栏:API接口开发API接口开发

前言

京东开放平台(京东云・开放平台)提供商品详情标准 API,支持单品查询、批量查询、联盟商品(京东联盟) 三类核心数据获取,本文提供可直接运行的 Python 代码真实接口返回 JSON字段解析,适用于商品同步、价格监控、SKU 采集、ERP 对接等场景。

一、前置说明

1. 核心接口(官方推荐)

  • 单品商品详情jingdong.item.read.get(商家 / 开发者通用)
  • 批量商品详情jingdong.item.list.get(单次最多 20 个商品 ID)
  • 京东联盟商品详情jd.union.open.goods.promotiongoodsinfo.query(带佣金 / 优惠券)

2. 调用条件

  • 京东开放平台注册应用 → 获取 AppKey、AppSecret、AccessToken
  • 申请接口权限(商品基础信息权限)
  • 安装依赖:

bash

运行

代码语言:javascript
复制
pip install requests

二、Python 完整调用代码(通用版)

1. 京东 API 签名 + 请求工具类

python

运行

代码语言:javascript
复制
import requests
import hashlib
import time
from urllib.parse import urlencode

class JDAPIClient:
    def __init__(self, app_key, app_secret, access_token):
        self.app_key = app_key
        self.app_secret = app_secret
        self.access_token = access_token
        self.api_url = "https://api.jd.com/routerjson"

    # 京东API MD5签名生成(必须)
    def sign(self, params):
        params_str = "".join([f"{k}{v}" for k, v in sorted(params.items())])
        sign_str = self.app_secret + params_str + self.app_secret
        return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper()

    # 通用请求方法
    def request(self, method, params):
        public_params = {
            "method": method,
            "app_key": self.app_key,
            "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
            "format": "json",
            "v": "2.0",
            "access_token": self.access_token
        }
        # 合并公共参数 + 业务参数
        all_params = {**public_params, **params}
        all_params["sign"] = self.sign(all_params)
        
        try:
            resp = requests.post(self.api_url, data=all_params, timeout=10)
            return resp.json()
        except Exception as e:
            return {"error": str(e)}

2. 获取商品详情(单品 + 批量)

python

运行

代码语言:javascript
复制
# ========== 配置信息(替换为自己的) ==========
APP_KEY = "你的AppKey"
APP_SECRET = "你的AppSecret"
ACCESS_TOKEN = "你的AccessToken"

# 初始化客户端
client = JDAPIClient(APP_KEY, APP_SECRET, ACCESS_TOKEN)

# ============= 1. 单品商品详情 =============
def get_jd_item_detail(sku_id):
    params = {
        "sku_id": sku_id,  # 京东商品ID(必填)
        "fields": "sku_id,title,price,image_url,brand_info,category_info,sku_stock,sku_property"
    }
    return client.request("jingdong.item.read.get", params)

# ============= 2. 批量商品详情(最多20个) =============
def get_jd_item_batch(sku_ids):
    params = {
        "sku_ids": ",".join(sku_ids),  # 逗号分隔,≤20个
        "fields": "sku_id,title,price,image_url,sku_stock"
    }
    return client.request("jingdong.item.list.get", params)

# ============= 调用示例 =============
if __name__ == "__main__":
    # 单品
    detail = get_jd_item_detail("100012345678")
    print("单品详情:", detail)

    # 批量
    # batch_detail = get_jd_item_batch(["100012345678", "100087654321"])
    # print("批量详情:", batch_detail)

三、京东 API 真实返回 JSON(商品详情)

1. 单品详情成功返回

json

代码语言:javascript
复制
{
  "jingdong_item_read_get_response": {
    "result": {
      "item": {
        "sku_id": "100012345678",
        "title": "2025新款平板电脑 高清全面屏 办公学习游戏二合一",
        "price": "2499.00",
        "image_url": "https://img14.360buyimg.com/n1/jfs/t1/206524/28/22345/12345/641234567890a1234.jpg",
        "brand_info": {
          "brand_id": "12345",
          "brand_name": "小米"
        },
        "category_info": {
          "cid1": "1319",
          "cid1_name": "电脑、办公",
          "cid2": "1320",
          "cid2_name": "平板电脑"
        },
        "sku_stock": "现货",
        "sku_property": [
          {
            "property_id": "1234",
            "property_name": "颜色",
            "value_id": "5678",
            "value_name": "深空灰"
          },
          {
            "property_id": "4321",
            "property_name": "内存",
            "value_id": "8765",
            "value_name": "8GB+256GB"
          }
        ]
      },
      "code": 0,
      "msg": "success"
    }
  }
}

2. 批量详情返回结构

json

代码语言:javascript
复制
{
  "jingdong_item_list_get_response": {
    "result": {
      "items": [
        {
          "sku_id": "100012345678",
          "title": "平板电脑",
          "price": "2499.00",
          "image_url": "https://img14.360buyimg.com/xxx.jpg",
          "sku_stock": "现货"
        },
        {
          "sku_id": "100087654321",
          "title": "无线蓝牙耳机",
          "price": "399.00",
          "image_url": "https://img10.360buyimg.com/yyy.jpg",
          "sku_stock": "现货"
        }
      ],
      "code": 0,
      "msg": "success"
    }
  }
}

3. 错误返回示例

json

代码语言:javascript
复制
{
  "error_response": {
    "code": 401,
    "msg": "签名错误",
    "sub_code": "isv.sign-invalid"
  }
}

四、核心字段解析(最常用)

表格

字段

含义

说明

sku_id

商品唯一 ID

京东商品主键,用于查询、定位

title

商品标题

完整名称,含型号、规格

price

商品售价

字符串格式,需转 float 计算

image_url

商品主图

可直接访问的高清图片

brand_info

品牌信息

品牌 ID + 名称

category_info

类目信息

一级 / 二级类目名称与 ID

sku_stock

库存状态

现货 / 无货 / 采购中

sku_property

SKU 属性

颜色、尺寸、内存等规格


五、调用频率限制(官方标准)

  • QPS(每秒请求)5 次 / 秒
  • 日调用上限1000 次 / 天(基础版)
  • 批量接口:单次最多 20 个商品 ID
  • 企业版:可申请提升至 50 QPS + 10 万次 / 天

六、代码使用总结

  1. 替换 AppKey、AppSecret、AccessToken 即可直接运行
  2. 批量查询优先用 jingdong.item.list.get,效率提升 20 倍
  3. 返回数据结构统一,code=0 代表成功
  4. 适合:商品采集、价格监控、竞品分析、ERP 系统对接

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 一、前置说明
      • 1. 核心接口(官方推荐)
      • 2. 调用条件
    • 二、Python 完整调用代码(通用版)
      • 1. 京东 API 签名 + 请求工具类
      • 2. 获取商品详情(单品 + 批量)
    • 三、京东 API 真实返回 JSON(商品详情)
      • 1. 单品详情成功返回
      • 2. 批量详情返回结构
      • 3. 错误返回示例
    • 四、核心字段解析(最常用)
    • 五、调用频率限制(官方标准)
    • 六、代码使用总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档