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

如何在Python中筛选并打印指定条件的JSON字典

解决方案

首先要明确VirusTotal v2 API返回的域名扫描结果结构:核心的引擎检测数据在scans字段下,这是一个字典(而非列表),每个键是杀毒引擎名称,对应的值是包含detected字段的字典。你之前的方法失败大概率是没正确提取scans下的检测项。

以下是两种简洁可行的实现方案:

方案1:列表推导(推荐)

先提取scans字典的所有值,再筛选出detected为True的项:

# 假设你已经获取到完整的API返回数据,存在变量vt_data中
detected_results = [engine_result for engine_result in vt_data['scans'].values() if engine_result['detected']]

# 打印筛选结果
for res in detected_results:
    print(res)

方案2:filter() + lambda

同样先处理scans的values,再用filter过滤:

detected_results = list(filter(lambda x: x['detected'], vt_data['scans'].values()))

# 打印结果
for res in detected_results:
    print(res)

补充:保留引擎名称的写法

如果需要同时显示对应的杀毒引擎名称,可以改用字典推导:

detected_with_engine = {engine: result for engine, result in vt_data['scans'].items() if result['detected']}
print(detected_with_engine)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:20:28