今日油价标号对照:89/92/95/98 汽油与 0 号柴油的字段映射

约 10 分钟 入门今日油价汽油标号柴油字段映射
# 今日油价标号对照:89/92/95/98 汽油与 0 号柴油的字段映射 接口/接入点:今日油价(apiCode=138)· 查询油价(138-46) · 免费 · 适用人群:车主产品前端开发者、内容运营 · 阅读时间:约 5 分钟 · 最后实测核对:2026-09-18 返回里一堆 `p` 开头的字段,最容易读错的是 `p0`。它代表 0 号柴油,不是「价格 0」。把字段和标号对上,前端展示和文案才不会出错。 ## 核心要点 - `p89`/`p90`/`p92`/`p93`/`p95`/`p97`/`p98` 是汽油标号字段,数字就是标号本身。 - `p0` 是 0 号柴油,最后一个字符是油品标号,不是价格。 - 2026-09-18 实测的 31 条记录中,`p90`/`p93`/`p97` 全部为空字符串,`p89` 有 7 个省份返回 `"0.00"`。 ## 字段与标号对照 | 字段 | 对应油品 | 说明 | |---|---|---| | `p89` | 89 号汽油 | 低标号,并非所有省份都有供应 | | `p90` | 90 号汽油 | 历史标号 | | `p92` | 92 号汽油 | 当前主流标号 | | `p93` | 93 号汽油 | 历史标号 | | `p95` | 95 号汽油 | 当前主流标号 | | `p97` | 97 号汽油 | 历史标号 | | `p98` | 98 号汽油 | 高标号 | | `p0` | 0 号柴油 | 柴油,与汽油标号不是同一序列 | 把这个表贴在代码里当常量,比在业务逻辑里散落字符串判断更稳。 ```python GAS_LABELS = { "p89": "89号", "p90": "90号", "p92": "92号", "p93": "93号", "p95": "95号", "p97": "97号", "p98": "98号", } DIESEL_FIELD = "p0" # 0 号柴油,注意不是「价格 0」 ``` ## 现行标号与历史标号 面向用户展示时,建议分两组:当前在用的 89/92/95/98 放主区,90/93/97 放「历史标号」区或直接不展示。 理由是数据显示的分布:2026-09-18 实测取回 31 个省份,`p90`、`p93`、`p97` 三个字段在 31 条记录里全部为空字符串,没有一个省份有值。把它们放进主区,用户看到的会是一片「—」。 同一批实测里,`p89` 有 7 个省份返回 `"0.00"`,其余 24 个省份是正常价格。`"0.00"` 不是空字符串,直接判空会漏掉,需要按数值判断。 ## 前端展示代码 Python(requests): ```python import requests resp = requests.post( "https://route.showapi.com/138-46", data={"appKey": "YOUR_APPKEY", "prov": "北京"}, timeout=5, ).json() item = resp["showapi_res_body"]["list"][0] CURRENT = ["p89", "p92", "p95", "p98"] # 当前标号放主区 LEGACY = ["p90", "p93", "p97"] # 历史标号,多为空 def show(raw): if not raw or float(raw) <= 0: return "—" return f"{float(raw):.2f} 元/升" print("现行汽油:") for code in CURRENT: print(f" {GAS_LABELS[code]}: {show(item.get(code))}") print(f"0号柴油: {show(item.get(DIESEL_FIELD))}") legacy = [f"{GAS_LABELS[c]}: {show(item.get(c))}" for c in LEGACY] print("历史标号:", ",".join(legacy)) print("数据生成时间:", item["ct"]) ``` cURL: ```bash curl -X POST "https://route.showapi.com/138-46?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-46", { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ appKey: "YOUR_APPKEY", prov: "北京" }), signal: AbortSignal.timeout(5000), }); const item = (await resp.json()).showapi_res_body.list[0]; const labels = { p89: "89号", p90: "90号", p92: "92号", p93: "93号", p95: "95号", p97: "97号", p98: "98号" }; const show = (raw) => (raw && Number(raw) > 0 ? `${Number(raw).toFixed(2)} 元/升` : "—"); for (const code of ["p89", "p92", "p95", "p98"]) { console.log(`${labels[code]}: ${show(item[code])}`); } console.log(`0号柴油: ${show(item.p0)}`); ``` ## 实测值参考 2026-09-18 查北京得到的一组数据,可用于对照你的解析结果: | 字段 | 标号 | 实测值 | |---|---|---| | `p89` | 89 号汽油 | 7.76 | | `p92` | 92 号汽油 | 8.29 | | `p95` | 95 号汽油 | 8.83 | | `p98` | 98 号汽油 | 10.33 | | `p0` | 0 号柴油 | 8.02 | | `p90` `p93` `p97` | 历史标号 | 空字符串 | `p98` 高于 `p95`、`p95` 高于 `p92`,柴油价格与 92 号接近,这组关系可以用来做渲染前的数值合理性检查。价格上涨与下跌的颜色约定按你的产品规范处理,接口本身不返回展示样式。 ## 适用条件与注意事项 - 标号字段返回的是字符串,展示前转数值。 - `p89` 在部分省份返回 `"0.00"`,表示该省这个标号没有有效价格,判空时一并处理。 - `p90`/`p93`/`p97` 属于历史标号,当前数据里为空字符串,不必为主区展示准备样式。 - 字段完整含义与两个接入点的结构差异见《今日油价返回字段对照:p89/p92/p0 与 ct 的含义与空值处理》。 ## FAQ **Q1:`p0` 是价格为 0 的意思吗?** 不是。`p0` 代表 0 号柴油,数字 0 是柴油标号。0 号柴油价格是正常数值,2026-09-18 实测北京为 8.02 元/升。 **Q2:92 号和 93 号哪个是现行的?** 92 号是当前主流标号,93 号是历史标号。2026-09-18 实测 31 个省份的 `p93` 全部为空字符串,`p92` 全部有值。 **Q3:为什么 `p89` 有的省是 `"0.00"`?** 表示该省这个标号没有有效价格。2026-09-18 实测有 7 个省份返回 `"0.00"`,展示时按无数据处理。 **Q4:接口返回价格单位吗?** 不返回。价格单位是元/升,展示时自行补充。 **Q5:可以只展示 92、95 和柴油吗?** 可以。这三个字段在这批数据里各省都有值,做简版卡片时足够。 ## 相关能力 / 下一步阅读 - [今日油价返回字段对照:p89/p92/p0 与 ct 的含义与空值处理](https://www.showapi.com/guides/oilprice-fields-138) - [今日油价:用 Python 查北京 92 号汽油价格的完整调用流程](https://www.showapi.com/guides/oilprice-quickstart-138) - **本系列共 13 篇**:查看[今日油价指南总目录](https://www.showapi.com/guides/oilprice-guides-138)
加载中...