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

使用SerpAPI提取阿拉伯语谷歌搜索摘要时遇KeyError问题求助

解决SerpAPI阿拉伯语查询出现KeyError: 'organic_results'的问题

出现KeyError: 'organic_results'意味着SerpAPI返回的字典里没有这个字段,可能是API调用失败、无搜索结果或参数配置问题,可按以下步骤排查解决:

  • 先查看完整返回数据,定位问题根源
    在获取data后先打印完整内容,确认返回结构和是否存在错误信息:

    data = client.get_dict()
    print(data)  # 打印全部返回内容,检查是否有error字段或其他结果类型
    

    如果返回包含error字段,说明API调用存在问题(比如密钥无效、配额耗尽);如果没有organic_results但有其他字段(如answer_box、knowledge_graph),说明搜索结果结构和预期不同。

  • 验证API密钥与配额
    检查环境变量API_KEY是否正确加载,可临时打印密钥(注意不要泄露)确认:

    print(os.getenv("API_KEY"))  # 确认密钥是否正确获取
    

    同时登录SerpAPI后台查看调用配额是否耗尽,或密钥是否处于有效状态。

  • 调整搜索参数

    • 尝试降低num参数值(比如改为10),部分地区谷歌搜索可能限制单次返回结果数量;
    • 调整hl参数为ar-EG,更精准匹配埃及地区的语言设置;
    • 确认google_domain和gl参数的对应关系(google.com.eg搭配gl=eg是合理的,但可尝试换成google.com测试)。
  • 修改代码避免KeyError,兼容无结果场景
    使用字典的get方法获取字段,即使没有organic_results也不会报错,同时处理无结果的情况:

    from serpapi import GoogleSearch
    import os
    
    params = {
        "engine": "google",
        "q": "كاس العالم",
        "google_domain": "google.com.eg",
        "hl":"ar",
        "gl":"eg",
        "num": 10,  # 先降低数量测试
        "api_key": os.getenv("API_KEY")
    }
    client = GoogleSearch(params)
    data = client.get_dict()
    
    organic_results = data.get('organic_results', [])
    if organic_results:
        print("有机搜索结果")
        for result in organic_results:
            print(f"""
    Title: {result['title']}
    Link: {result['link']}
    Position: {result['position']}
    Snippet: {result['snippet']}
    """)
    else:
        print("未找到有机搜索结果,返回数据如下:")
        print(data)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:25:41