技术博客
生肖运势查询:sx 参数(12 生肖拼音编码)正确用法与对照表

生肖运势查询:sx 参数(12 生肖拼音编码)正确用法与对照表

作者: 万维易源
2026-09-03
生肖运势查询sx参数12生肖拼音参数用法
# 生肖运势查询:sx 参数(12 生肖拼音编码)正确用法与对照表 > 元信息:生肖运势查询(接入点 1) · 免费 · POST / GET · JSON · 初级/中级开发者 · 阅读约 5 分钟 ## 核心要点 - `sx` 是**唯一必填参数**,取值为 12 个固定拼音码,不是中文、也不是数字。 - 12 个拼音码与中文生肖一一对应:`shu`=鼠、`niu`=牛、`hu`=虎、`tu`=兔、`long`=龙、`she`=蛇、`ma`=马、`yang`=羊、`hou`=猴、`ji`=鸡、`gou`=狗、`zhu`=猪。 - 传错或缺失会触发 `ret_code` 非 0,以 `remark` 提示为准;建议前端用下拉或映射表把"中文"转成拼音码。 ## Why:为什么专门讲一个参数 `sx` 是整个接口唯一不能省略的字段,且它用**拼音码**而非中文。新手常犯两类错:一是直接传中文"猴"或数字"9",结果返回失败;二是自己猜拼音写错(如把"蛇"写成 `she` 是对的,但容易拼成 `snake`)。本文给出权威对照表与前端映射建议,确保一次传对。 ## What:参数定义 | 参数 | 位置 | 必填 | 类型 | 取值 | |------|------|------|------|------| | `sx` | query / form | **是** | string | 12 个拼音码之一(见下表) | | `needTomorrow` | query / form | 否 | string | `1`=返回明日(默认不需要) | | `needMonth` | query / form | 否 | string | `1`=返回本月(默认不需要) | ### 12 生肖拼音码对照表(官方取值) | 拼音码(传参值) | 中文生肖 | 拼音码(传参值) | 中文生肖 | |------------------|----------|------------------|----------| | `shu` | 鼠 | `yang` | 羊 | | `niu` | 牛 | `hou` | 猴 | | `hu` | 虎 | `ji` | 鸡 | | `tu` | 兔 | `gou` | 狗 | | `long` | 龙 | `zhu` | 猪 | | `she` | 蛇 | — | — | | `ma` | 马 | — | — | > 提示:`long`(龙)、`she`(蛇)、`hou`(猴)、`ji`(鸡)、`gou`(狗)、`zhu`(猪)均为官方文档列出的真实取值,直接照抄即可。 ## How:正确传参与常见错误 ### Python:用映射表把中文转拼音码 ```python SX_MAP = { "鼠": "shu", "牛": "niu", "虎": "hu", "兔": "tu", "龙": "long", "蛇": "she", "马": "ma", "羊": "yang", "猴": "hou", "鸡": "ji", "狗": "gou", "猪": "zhu", } def query_fortune(cn_name: str): code = SX_MAP.get(cn_name) if not code: raise ValueError(f"未知生肖: {cn_name}") resp = requests.get( "https://route.showapi.com/2219-1", params={"appKey": "YOUR_APPKEY", "sx": code}, timeout=15, ) body = resp.json().get("showapi_res_body", {}) if body.get("ret_code") != 0: print("业务失败:", body.get("remark")) return body ``` ### cURL:直接传拼音码 ```bash curl -X POST "https://route.showapi.com/2219-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ --data-urlencode "sx=hou" ``` ### Node.js(fetch) ```javascript const code = "hou"; // 猴 const url = `https://route.showapi.com/2219-1?appKey=YOUR_APPKEY&sx=${code}`; const data = await (await fetch(url, { signal: AbortSignal.timeout(15000) })).json(); if (data.showapi_res_body.ret_code !== 0) { console.log("业务失败:", data.showapi_res_body.remark); } ``` ## 返回示例与解析 成功时 `showapi_res_body.sx` 会回传你传入的拼音码,`shenxiao` 给出可读全称: ```json { "showapi_res_body": { "ret_code": 0, "remark": "查询成功!", "shenxiao": "申猴", "sx": "hou", "day": { "time": "20200204", "career_star": 4, "money_star": 3 } } } ``` ## 进阶 / 边界 - **不要传中文或数字**:接口只认上表的 12 个拼音码。若产品 UX 用中文选择,务必在前端/后端做一次 `中文 → 拼音码` 映射(如上 `SX_MAP`)。 - **12 生肖不含"猫"等**:仅传统 12 生肖;传入范围外的值会返回 `ret_code` 非 0。 - **大小写**:文档示例均为小写,建议统一小写传参,避免大小写不一致导致匹配失败。 ## FAQ **Q1:能直接传中文"猴"吗?** A:不能。`sx` 只接受 12 个拼音码(如 `hou`)。中文需先映射成拼音码再传,否则返回失败。 **Q2:传错 sx 会返回什么?** A:返回 `ret_code` 非 0,并附带 `remark` 提示。文档未枚举具体非 0 错误码,排查以 `remark` 文案为准。 **Q3:为什么返回里既有 sx 又有 shenxiao?** A:`sx` 是入参拼音码回传(如 hou),`shenxiao` 是"天干+生肖"可读全称(如申猴)。展示给用户用 `shenxiao` 更友好,业务逻辑用 `sx` 即可。 **Q4:龙/蛇这些拼音会不会拼错?** A:官方取值就是 `long`/`she`/`hou`/`ji`/`gou`/`zhu`,直接照本文对照表复制,不要自创(如 `snake`、`dragon` 都不行)。 **Q5:需要一次性查多个生肖怎么办?** A:本接入点一次只接收一个 `sx`。要查多个生肖需循环调用(注意免费档位限制,建议加缓存),详见《[生肖运势查询:每 2 小时更新,如何设计缓存避免重复调用](https://www.showapi.com/guides/shengxiao-fortune-cache-2219)》。 ## 相关能力 / 下一步阅读 - [生肖运势查询:5 分钟接入,从注册到第一条运势结果](https://www.showapi.com/guides/shengxiao-fortune-quickstart-2219) - [生肖运势查询:返回字段全解(day / month / tomorrow 三大对象差异与指数说明)](https://www.showapi.com/guides/shengxiao-fortune-response-fields-2219) - [生肖运势查询:如何同时拿到今日 / 明日 / 本月运势(needTomorrow / needMonth 开关)](https://www.showapi.com/guides/shengxiao-fortune-daily-monthly-2219) - **本系列共 9 篇**:查看[生肖运势查询指南总目录](https://www.showapi.com/guides/shengxiao-fortune-guides-2219)