技术博客
国际原油价格查询返回字段全解:nowPrice / diff_rate / stockNum 一文读懂

国际原油价格查询返回字段全解:nowPrice / diff_rate / stockNum 一文读懂

作者: 万维易源
2026-09-02
国际原油价格查询原油价格APIWTI原油布伦特原油免费接口
# 国际原油价格查询返回字段全解:nowPrice / diff_rate / stockNum 一文读懂 > 接口:国际原油价格查询(apiCode=1108,接入点 1108-1)| 免费 | 请求方式 POST/GET | 返回 JSON | 适用人群:已接入或准备接入的开发者 | 阅读时间:约 6 分钟 ## 核心要点 - 业务数据全部在 `showapi_res_body` 对象内,共 11 个字段。 - 类型混合:`nowPrice` 与 `ret_code` 是 Number,其余价格字段均为 String,解析时务必注意。 - `diff_rate` 是带百分号的字符串(如 `"1.13%"`),`stockNum` 单位为千桶。 ## Why 接好接口只是第一步,读懂返回结构才能正确展示和计算。国际原油价格查询的返回字段不多,但有两点容易踩坑:一是 `nowPrice` 是数字、其它价格字段是字符串;二是涨跌幅 `diff_rate` 已经带了百分号、不能当纯数字再乘 100。本文把 11 个字段的类型、单位、含义一次性讲清,作为全系列的事实底座页。 ## What | 项目 | 说明 | |------|------| | 业务数据容器 | `showapi_res_body`(Object) | | 字段总数 | 11 个(含 `ret_code`) | | 系统级外层字段 | `showapi_res_code` / `showapi_res_error` / `showapi_res_id` | | 成功判定 | `showapi_res_body.ret_code == 0` | ## How ### 返回字段对照表 | 字段 | 类型 | 示例 | 含义 / 单位 | |------|------|------|------------| | `nowPrice` | Number | `44.94` | 当前价格,单位 美元/桶 | | `yestoday_closePrice` | String | `"44.44"` | 昨日结算价 | | `today_openPrice` | String | `"45.05"` | 今日开盘价 | | `todayMax` | String | `"45.62"` | 今日最高价 | | `todayMin` | String | `"44.72"` | 今日最低价 | | `diff_num` | String | `"0.5"` | 涨跌金额(相对昨日结算价) | | `diff_rate` | String | `"1.13%"` | 涨跌幅度,已带百分号 | | `time` | String | `"2025-02-11 14:05:34"` | 数据发布时间 | | `stockNum` | String | `"10045"` | 持仓量,单位 千桶 | | `name` | String | `"WTI原油(NYMEX原油)"` | 原油名称(随 `code` 变化) | | `ret_code` | Number | `0` | 0 为成功,其他为失败 | ### 解析示例(Python) ```python import requests APP_KEY = "YOUR_APPKEY" resp = requests.get( "https://route.showapi.com/1108-1", params={"appKey": APP_KEY, "code": "blt"}, timeout=10, ).json() body = resp["showapi_res_body"] if body["ret_code"] != 0: raise SystemExit("业务失败") # nowPrice 已是数字,可直接运算 now = body["nowPrice"] # 其余价格字段是字符串,需转换 yest_close = float(body["yestoday_closePrice"]) high = float(body["todayMax"]) low = float(body["todayMin"]) # diff_rate 带百分号,去掉后转浮点 rate = float(body["diff_rate"].rstrip("%")) print(f"{body['name']} 当前 {now} 美元/桶,涨跌 {body['diff_rate']}") print(f"区间 {low}~{high},幅度 {rate}%") ``` ## 返回示例与解析 ```json { "showapi_res_code": 0, "showapi_res_body": { "ret_code": 0, "nowPrice": 44.94, "yestoday_closePrice": "44.44", "today_openPrice": "45.05", "todayMax": "45.62", "todayMin": "44.72", "diff_num": "0.5", "diff_rate": "1.13%", "time": "2025-02-11 14:05:34", "stockNum": "10045", "name": "WTI原油(NYMEX原油)" } } ``` > 注意外层 `showapi_res_code`(系统级)与内层 `ret_code`(业务级)是两个不同字段,成功判断以内层 `ret_code == 0` 为准。 ## 进阶 / 边界 - **类型转换是必做项**:除 `nowPrice`、`ret_code` 外,价格字段都是字符串,存库或计算前请先 `float()`。 - **`diff_rate` 已是百分比文本**:展示可直接用;若要计算,去掉 `%` 再转数字,不要重复乘 100。 - **`name` 随 `code` 变化**:传 `wti` 返回「WTI原油(NYMEX原油)」,传 `blt` 返回布伦特相关名称,用它做界面标题最稳妥。 ## FAQ **Q:ret_code 和 showapi_res_code 有什么区别?** `showapi_res_code` 是系统级返回码(网络/网关层),`ret_code` 在 `showapi_res_body` 内、代表业务结果。业务成功以 `ret_code == 0` 判断。 **Q:diff_rate 是相对什么的涨跌幅?** 相对昨日结算价(`yestoday_closePrice`)计算,字段说明已标注。 **Q:为什么价格有的是数字、有的是字符串?** 接口对 `nowPrice`、`ret_code` 返回数字类型,其余价格字段返回字符串类型;这是文档给定的实际结构,解析时需分别处理。 **Q:stockNum 的单位是什么?** 持仓量,单位为千桶(字段说明标注「单位千桶」)。 **Q:time 是数据发布时间还是请求时间?** 是数据发布时间(字段说明标注「发布时间」),更新频率为每小时整点。 ## 相关能力 / 下一步阅读 - [国际原油价格查询:5 分钟从注册到拿到第一条 WTI 报价](https://www.showapi.com/guides/crude-oil-price-quickstart-1108) - [国际原油价格查询:原油涨跌监控与趋势预警搭建指南](https://www.showapi.com/guides/crude-oil-price-alert-1108) - [国际原油价格查询:ret_code 与常见调用错误排查](https://www.showapi.com/guides/crude-oil-price-error-handling-1108) - **本系列共 12 篇**:查看[国际原油价格查询官方指南总目录](https://www.showapi.com/guides/crude-oil-price-guides-1108)