技术博客
文本关键词抽取:返回结构与 ret_code 状态码全解

文本关键词抽取:返回结构与 ret_code 状态码全解

作者: 万维易源
2026-08-31
文本关键词抽取返回结构ret_code状态码
# 文本关键词抽取:返回结构与 ret_code 状态码全解 - **接口 / 接入点**:文本关键词抽取(apiCode 941)· 接入点 `941-1` - **是否免费**:是 | **请求方式**:POST / GET | **返回格式**:JSON - **适用人群**:已接入的开发者、排查报错的用户 - **阅读时间**:约 6 分钟 ## 核心要点 - 返回分两层:系统级(`showapi_res_code` / `showapi_res_error` / `showapi_res_id`)与业务级(`showapi_res_body` 内)。 - 业务是否成功,看 `showapi_res_body.ret_code == "0"`;`list` 才是关键词数组。 - 接口页未提供独立业务错误码表,系统级错误以公共返回参数为准。 ## Why:为什么必须看懂返回结构 调用出错时,很多人分不清「网关报错」和「业务报错」,于是在参数上反复试错浪费时间。本文把每一层字段讲清楚,并给出判定顺序,让你一次定位问题。 ## What:返回结构速览 | 层 | 字段 | 类型 | 说明 | |----|------|------|------| | 系统级 | `showapi_res_code` | Number | 网关状态码,0 成功 | | 系统级 | `showapi_res_error` | String | 网关错误信息,成功为空 | | 系统级 | `showapi_res_id` | String | 本次请求唯一标识 | | 业务级 | `showapi_res_body` | Object | 业务数据容器 | | 业务级 | `showapi_res_body.list` | Array | 关键词数组(字符串) | | 业务级 | `showapi_res_body.ret_code` | String | 业务状态码,0 成功,其他失败 | 鉴权与公共返回参数(如签名错误、AppKey 无效等系统级错误)由 ShowAPI 公共返回参数承载,可在接口详情页「查看公共返回参数」了解。 ## How:判定顺序 ```python import requests def extract(text, appkey, num="10"): r = requests.post("https://route.showapi.com/941-1", data={"appKey": appkey, "text": text, "num": num}, timeout=10) data = r.json() # 1) 网关层 if data.get("showapi_res_code") != 0: return f"网关错误:{data.get('showapi_res_error')}" body = data.get("showapi_res_body", {}) # 2) 业务层 if str(body.get("ret_code")) != "0": return f"业务失败 ret_code={body.get('ret_code')} err={data.get('showapi_res_error')}" return body.get("list", []) print(extract("这是一段测试的文字。", "YOUR_APPKEY")) ``` 判定要点: 1. 先看 `showapi_res_code` 是否等于 0(网关层是否通)。 2. 再看 `showapi_res_body.ret_code` 是否等于 `"0"`(业务是否成功)。 3. 只有两层都成功,`list` 才是有效关键词。 ## 返回示例与解析 ```json { "showapi_res_code": 0, "showapi_res_error": "", "showapi_res_id": "ce135f6739294c63be0c021b76b6fbff", "showapi_res_body": { "list": ["测试", "文字"], "ret_code": "0" } } ``` > 说明:文档参数表里 `list` 的类型列标为 `String`,但描述为「所有的关键词数组」且示例中为字符串数组(如 `["测试","文字"]`),实际应按数组处理;公共文档类型标注疑似有误,以返回示例为准。 ## 进阶 / 边界 - `ret_code` 与 `showapi_res_code` 含义不同:前者业务、后者网关,别只看一个。 - 页面返回示例里 `ret_code` 写作 `-1` 属示例占位,字段定义以「0 为成功,其他失败」为准。 - 本接口无独立业务错误码枚举;非 0 的 `ret_code` 结合 `showapi_res_error` 文本排查,必要时用 `showapi_res_id` 联系官方。 ## FAQ **Q1:showapi_res_code=0 但 ret_code 不是 0,算成功吗?** A1:不算。网关通了但业务逻辑未通过(如参数被拦截),以 `ret_code != "0"` 视为失败,按 `showapi_res_error` 排查。 **Q2:list 字段类型到底是 String 还是 Array?** A2:文档类型列写 String,但描述与示例都是数组,按数组(字符串列表)使用最稳妥。 **Q3:哪里看系统级错误码含义?** A3:接口详情页提供「公共返回参数」,签名/AppKey 等系统级错误在那里定义;本接口页未单列业务错误码表。 **Q4:showapi_res_id 有什么用?** A4:每次请求唯一标识,报错给官方排查时附上它,能快速定位那次调用。 **Q5:ret_code 返回 -1 是什么意思?** A5:文档定义「0 成功,其他失败」,-1 属失败。具体原因看 `showapi_res_error`;示例中的 -1 是占位,不必照搬。 ## 相关能力 / 下一步阅读 - [文本关键词抽取:5 分钟快速接入指南(Python / cURL / JS)](https://www.showapi.com/guides/text-keyword-quickstart-941) —— 先跑通再回来查结构 - [文本关键词抽取:免费接口下的缓存与限流策略(节省调用档位)](https://www.showapi.com/guides/text-keyword-cache-cost-941) —— 限流报错怎么兜底 - **本系列共 10 篇**:查看[文本关键词抽取指南总目录](https://www.showapi.com/guides/text-keyword-guides-941)