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

调用VirusTotal API v3触发KeyError: 'data'问题求助

解决VirusTotal API v3调用时的KeyError: 'data'问题

以下是可能的原因和对应的解决方法:

  • 先排查实际返回的响应内容
    在报错的代码行之前,先打印完整的decodedResponse,比如加一行print(decodedResponse)。很多时候API返回的是错误信息而非预期数据——比如API密钥无效、请求超限、URL未被收录,这时候响应里会有error字段而不是data。

  • 检查API配置与权限
    确认脚本里的API密钥是否正确配置,免费版密钥有请求次数限制(每分钟最多4次),超限后会返回错误响应。另外,确保密钥有访问URL分析端点的权限。

  • 确认API请求端点是否正确
    VirusTotal API v3中,查询已收录的URL需要先将URL进行不带填充的base64编码作为url_id,请求端点是/urls/{url_id};如果URL未被收录,需要先通过POST /urls提交URL,再用返回的分析链接获取结果。如果脚本里用了错误的端点(比如IP分析的端点),自然得不到data字段。

  • 添加异常处理逻辑
    不要直接硬取data层级,先做判断避免KeyError:

    # 替换原有的取值代码
    if "error" in decodedResponse:
        print(f"请求失败: {decodedResponse['error']['message']}")
    elif "data" not in decodedResponse:
        print("未找到URL分析数据,可能是URL未被收录或请求有误")
    else:
        last_analysis_date = decodedResponse["data"]["attributes"]["last_analysis_date"]
        # 后续处理逻辑
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:52:05