技术博客
今日油价:涨跌幅怎么查?「查询行情」接入点的调价日与涨跌率实战

今日油价:涨跌幅怎么查?「查询行情」接入点的调价日与涨跌率实战

作者: 万维易源
2026-08-27
今日油价涨跌幅调价日查询行情
# 今日油价:涨跌幅怎么查?「查询行情」接入点的调价日与涨跌率实战 > 接口/接入点:今日油价 · 查询行情(138-49) · 免费 · POST/GET · JSON · 适用人群:车主产品开发者、公众号运营 · 阅读时间:约 7 分钟 ## TL;DR - 和「查询油价」不同,「查询行情」(138-49)用来查**涨跌幅**与**调价日**,`prov` 为**必填**。 - 返回 `p0` 对象含 `price`(现价)、`change_before_price`(上次价)、`change`(涨跌值)、`change_percent`(涨跌率),并带 `next_change_time`/`before_change_time`。 - 适合做「下次调价倒计时」「本月油价走势」类功能。 ## Why 用户不只想知道「现在多少钱」,还想知道「涨了还是跌了」「下次什么时候调价」。成品油调价有固定窗口,「查询行情」接入点把涨跌幅和调价日一并给出,正好支撑「调价提醒」「涨跌播报」这类高粘性功能。 ## What | 项 | 说明 | |----|------| | 接入点 | 查询行情(138-49) | | 接口地址 | `https://route.showapi.com/138-49?appKey={your_appKey}` | | 请求参数 | `prov`(省名,**必填**) | | 返回重点 | `p0` 涨跌幅对象 + `next_change_time` / `before_change_time` | | 计费 | 免费 | `showapi_res_body` 关键字段: | 字段 | 含义 | |------|------| | `prov` | 省份 | | `ret_code` | 0 成功,其余失败 | | `next_change_time` | 下一次油价调整时间(如 `20221025`) | | `before_change_time` | 最近一次油价调整时间 | | `p0.price` | 当前 0 号柴油价格 | | `p0.change_before_price` | 最近一次价格 | | `p0.change` | 涨跌幅(如 `-0.25`) | | `p0.change_percent` | 涨跌率(如 `-3.064%`) | > 说明:文档返回体中仅列出 `p0`(0 号柴油)的涨跌幅对象,其余标号是否提供以实际接口返回为准。 ## How **步骤:传省名 → 取 p0 与调价日 → 渲染** Python: ```python import requests resp = requests.post( "https://route.showapi.com/138-49", data={"appKey": "YOUR_APPKEY", "prov": "北京"}, timeout=10, ).json() body = resp["showapi_res_body"] if body.get("ret_code") != 0: raise RuntimeError("查询行情失败") p0 = body["p0"] print("省份:", body["prov"]) print("当前价:", p0["price"]) print("上次价:", p0["change_before_price"]) print("涨跌:", p0["change"], "涨跌率:", p0["change_percent"]) print("下次调价:", body["next_change_time"]) print("上次调价:", body["before_change_time"]) ``` cURL: ```bash curl -X POST "https://route.showapi.com/138-49?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "prov=%E5%8C%97%E4%BA%AC" ``` Node.js(fetch): ```javascript const resp = await fetch("https://route.showapi.com/138-49", { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ appKey: "YOUR_APPKEY", prov: "北京" }), }); const body = (await resp.json()).showapi_res_body; const p0 = body.p0; console.log(`当前价 ${p0.price},涨跌 ${p0.change}(${p0.change_percent})`); console.log(`下次调价 ${body.next_change_time}`); ``` ## 返回示例与解析 ```json { "showapi_res_body": { "next_change_time": "20221025", "before_change_time": "20220922", "prov": "北京", "ret_code": 0, "p0": { "price": "7.91", "change_before_price": "8.16", "change": "-0.25", "change_percent": "-3.064%" } } } ``` `change` 为负表示下降,`change_percent` 带 `%` 后缀的字符串;`next_change_time` 是 `YYYYMMDD` 格式,需自行解析成日期做倒计时。 ## 进阶/边界 - **别用错接入点**:查涨跌幅用 138-49(查询行情),查具体标号价格用 138-46(查询油价)。两者 `prov` 必填规则不同,见[《今日油价:prov 参数填不填?查询油价(选填) vs 查询行情(必填) 的正确姿势》](https://www.showapi.com/guides/oilprice-prov-param-138)。 - **调价日倒计时需要解析**:`next_change_time` 是 `YYYYMMDD` 字符串,前端用 `new Date(值.slice(0,4)+'-'+...)` 转日期。 - **涨跌幅仅供参考**:以国家公布为准,展示时标注「数据仅供参考」。 ## FAQ **Q:查询行情和查询油价有什么区别?** A:查询油价(138-46)返回各标号具体价格;查询行情(138-49)返回涨跌幅与调价日,且 `prov` 必填。 **Q:为什么只看到 p0 的涨跌幅?** A:文档返回体仅列出 `p0`(0 号柴油)的涨跌幅对象,其余标号是否提供以实际返回为准。 **Q:change_percent 能直接相加吗?** A:它是带 `%` 的字符串,需先去掉 `%` 再转数字;涨跌率计算以官方口径为准。 ## 相关能力 / 下一步阅读 - [今日油价:prov 参数填不填?查询油价(选填) vs 查询行情(必填) 的正确姿势](https://www.showapi.com/guides/oilprice-prov-param-138) - [今日油价:如何避免取到旧数据?结合每日 7 点更新频率的定时拉取](https://www.showapi.com/guides/oilprice-schedule-138) - **本系列共 13 篇**:查看[今日油价开发指南总目录](https://www.showapi.com/guides/oilprice-guides-138)