秘塔AI搜索API返回的JSON怎么解析

云萱小哥_5746

云萱小哥_5746

2026-09-29

217人浏览

原创

秘塔api响应需按三步安全解析:先捕获jsondecodeerror确认是否为合法json;再检查code字段判断错误响应;最后验证data是否为列表。成功响应中data恒为列表,错误响应无data字段,流式响应需剥离data:前缀后再解析。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

秘塔ai搜索api返回的json怎么解析

你在秘塔AI搜索API返回的JSON里反复遇到KeyError、JSONDecodeError或data字段为空,不是代码写错了,而是没看清响应结构就硬解析——秘塔的API响应不是扁平字典,它有固定三层嵌套,且错误响应和成功响应结构完全不同。

先确认返回的是不是合法JSON

用requests调用后,不要直接response.json()。先检查response.status_code是否为200,再用response.text[:200]打印前200个字符,看开头是不是{。如果返回的是HTML(比如403页面)、纯文本“Unauthorized”或空字符串,JSON.parse必然失败。

这一步不能跳过。很多开发者卡在第一步,却去改解析逻辑,浪费两小时。

识别秘塔API的标准响应结构

秘塔v1接口所有成功响应都遵循同一结构:

【data字段是列表,不是字典】 即使只返回一个结果,data也是[{"id":"xxx","title":"xxx",...}]这样的数组。直接response.json()["data"]["title"]会报TypeError: list indices must be integers。

错误响应则走另一条路径:{"code":401,"message":"Invalid API Key","error":"invalid_api_key"}——此时根本没有data字段,也没有result或items等别名。

安全解析三步法

第一步:用try/except包裹json.loads,捕获JSONDecodeError。若抛出,说明返回根本不是JSON,立刻终止解析流程,打印response.text并检查网络或鉴权。

第二步:检查顶层键是否存在code字段。存在且code≠0,说明是错误响应,直接取message字段,不要碰data。

第三步:code==0时,确认data字段类型。用isinstance(response_json.get("data"), list)判断,不是list就报结构异常,中止后续处理。

Json Schema Toolkit
Json Schema Toolkit

使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。

下载

这三步缺一不可。漏掉第二步,你会在错误响应里强行遍历data;漏掉第三步,你把空值或字符串当列表循环,触发IndexError。

提取搜索结果内容的两种写法

方法一:基础索引(适合单结果)

if response_json.get("code") == 0 and response_json.get("data"):
  first_result = response_json["data"][0]
  title = first_result.get("title", "")
  url = first_result.get("url", "")

方法二:防御性遍历(推荐用于生产)

results = response_json.get("data", [])
for item in results:
  if not isinstance(item, dict): continue
  title = item.get("title") or item.get("snippet", "")[:50]
  print(f"标题:{title}")

注意:snippet字段在部分知识库查询中才存在,title在网页搜索中稳定返回,但企业版私有知识库可能返回content字段代替title——【不要假设字段必存在,一律用.get()带默认值】。

处理流式响应的特殊逻辑

如果你启用了stream=true参数,响应不再是完整JSON,而是SSE格式:data: {"id":"abc","title":"xxx"}\n\n。必须先按行分割,过滤掉以data:开头的行,再对每行去掉data:前缀,最后逐行json.loads。

漏掉剥离data:前缀,JSONDecodeError会持续报Unexpected token 'd'——这是最常被忽略的协议层污染。

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
秘塔AI搜索新手入门教程
秘塔AI搜索新手入门教程

本专题提供秘塔AI搜索从零开始的完整使用教程,包括注册登录、基础操作、搜索方法以及结果查看技巧,帮助新手快速掌握秘塔AI搜索的使用流程。

2026.06.18

211

10

秘塔AI搜索信息检索指南
秘塔AI搜索信息检索指南

本专题讲解秘塔AI搜索在信息检索中的优化方法,包括关键词选择、问题表达、结果筛选和信息提炼技巧,帮助用户提升搜索效率和准确性。

2026.06.18

60

10

秘塔AI搜索提示词大全
秘塔AI搜索提示词大全

本专题汇集秘塔AI搜索Prompt模板与高阶使用技巧,涵盖行业研究、竞品分析、商业尽调、SWOT/PEST 战略分析、公众号/小红书/知乎内容创作、结构化报告输出等高频场景;同时讲解"AI 搜索 + 多轮追问"组合拳、信源筛选指令、长上下文研究模式调用等进阶玩法,帮助用户跳出"问什么就答什么"的初级用法,真正把秘塔AI搜索打造成个人深度研究助理与生产力中枢。

2026.06.18

136

10

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

180

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

80

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

80

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

60

12

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

2026.09.22

60

13

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

2026.09.22

60

19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 20.6万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 4.7万人学习