标题从result.items[n].metadata.title提取,链接优先取item.url(http/https开头),其次pdf_url、doc_url,全空填"n/a";遍历items时全程用.get()防御,分页需绑定item_id保url一致。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要从秘塔AI搜索API返回的JSON数据中稳定提取每条结果的标题和对应网页链接,但原始响应结构嵌套深、字段名不统一,直接取title和url常为空或错位,导致解析脚本批量失败。
确认API响应中的真实字段路径
调用秘塔AI搜索API后,检查返回JSON的根结构——实际标题不在顶层title字段,而藏在每个结果项的result.items[n].metadata.title下;网页链接则位于result.items[n].url,但该字段仅当结果为网页时存在,PDF或文库类结果会返回result.items[n].metadata.pdf_url或result.items[n].metadata.doc_url。
这一步必须做,否则用response['title']硬取会报KeyError,且url字段在非网页结果中为空字符串而非null,容易被误判为有效链接。
用Python安全提取标题与链接(推荐方法)
第一步:导入json并加载API响应体;
第二步:遍历response.get('result', {}).get('items', []),对每个item执行以下判断:
① 标题提取:优先取item.get('metadata', {}).get('title'),若为空则回退到item.get('snippet', '')[:30] + '...'截取摘要前段作备用标题;
② 链接提取:先检查item.get('url')是否为合法HTTP/HTTPS开头且非空,是则采用;否则检测item.get('metadata', {}).get('pdf_url'),再否则取item.get('metadata', {}).get('doc_url');三者全空时填入"N/A";
这一步的关键是拒绝直接信任字段名,所有取值操作都带.get()链式防御,避免因某条结果缺失字段导致整个列表解析中断。
curl命令行快速验证字段是否存在
执行:curl -X POST "https://api.metaso.cn/v1/search" -H "Authorization: Bearer YOUR_TOKEN" -d '{"query":"测试"}' | jq '.result.items[0] | {title: .metadata.title, url: .url, pdf_url: .metadata.pdf_url}'
注意:jq命令必须安装,否则无法格式化查看嵌套结构;若返回null而非字符串,说明该字段确实未生成,不能硬编码引用。
处理分页结果时的链接连续性保障
秘塔API分页靠next_page_token参数,但每次请求返回的items数组里url字段可能因缓存策略不同而变化——同一网页在第1页返回完整URL,在第2页可能被替换为跳转短链b23.tv/xxx。
【必须在首次请求时记录原始URL并绑定item_id,后续分页不再覆盖】 否则导出的链接列表会出现重复或失效问题。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











