You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DuckDuckGo API含空格编码查询返回空、计算器查询结果异常问题

DuckDuckGo API 调用问题排查与修复

问题1:含空格的查询返回全空JSON

  • 触发原因:
    1. DuckDuckGo 公开Instant Answer API默认仅返回已收录的标准化实体词条结果,无对应收录实体的普通查询默认返回空
    2. 请求缺失官方要求的必填参数:所有请求必须携带标识调用方的t参数(值为自定义应用名称),未携带该参数时接口会限制返回内容
    3. 多义词/模糊查询默认进入消歧逻辑,也会导致有效字段为空,需添加skip_disambig=1参数跳过消歧
  • 修复后的代码:
import urllib
import requests

def query(q):
    # 新增必填t参数、跳过消歧参数,添加no_html=1剔除结果中的HTML标签
    base_url = "https://api.duckduckgo.com/?q={}&format=json&t=custom_ddg_client&skip_disambig=1&no_html=1"
    resp = requests.get(base_url.format(urllib.parse.quote(q)))
    if resp.ok:
        return resp.json()
    return {}

修改后调用query("US Presidents")即可正常获取对应实体的结构化返回结果。

问题2:1+1查询返回的Result字段为空

  • 触发原因:DuckDuckGo API按返回类型分配存储字段:
    • 实体类查询的结构化结果存入Result字段
    • 计算器、单位换算、即时查询类的工具结果,统一存入Answer字段,Result字段不会赋值
  • 处理方案:查询返回结果的AnswerType字段,若值为calc(计算器类型),直接读取Answer字段即可得到计算结果2。

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:45:03