Python处理JSON数据时如何跳过不存在或为空的channels字段
Python 过滤JSON非空channels字段条目实现方案
你可以通过添加字段存在性、非空双重判断实现需求,具体实现如下:
完整代码
import json # 读取JSON文件,with语法会自动处理文件关闭 with open(r"/home/yugendhar.jakkidi/viewsLogdna.json", "r", encoding="utf-8") as f: data = json.load(f) # 过滤符合要求的条目:存在channels字段且字段值非空 filtered_result = [ entry for entry in data if "channels" in entry and entry["channels"] ] # 遍历输出过滤后的条目信息 for entry in filtered_result: print(entry['name'], entry['apps'], entry['viewid']) # 可选:将过滤结果导出为新的JSON文件,保留格式化缩进 with open(r"/home/yugendhar.jakkidi/filtered_result.json", "w", encoding="utf-8") as f: json.dump(filtered_result, f, indent=2, ensure_ascii=False)
逻辑说明
- 过滤条件
"channels" in entry用于筛选出存在channels字段的条目,排除不存在该字段的条目 - 第二个判断条件
entry["channels"]利用Python布尔规则:空列表、None都会被判为False,自动过滤channels为空列表、空值的无效条目 - 最终得到的
filtered_result就是你需要的仅包含非空channels字段的条目列表,可直接遍历使用或导出为文件
内容的提问来源于stack exchange,提问作者yugreddy
相关产品推荐
相关产品推荐

