Python判断嵌套JSON是否为空及检测sys_id字段存在性问题
问题分析与解决方案
代码存在的核心问题
语法错误:
file "/dbfs/mnt/landing/2023/sample.json"缺少赋值符号,应改为file = "/dbfs/mnt/landing/2023/sample.json"with open(file) as f:块的缩进不正确,后续代码需对齐到with块内
逻辑错误:
判断条件'sys_id' in data是检查根字典中是否存在sys_id键,但实际sys_id嵌套在data['result']数组的子对象里,这个判断永远不成立,导致一直输出empty list。
修正后的代码
import json # 修正变量赋值语法 file = "/dbfs/mnt/landing/2023/sample.json" with open(file) as f: data = json.load(f) result_list = data.get('result', []) # 检查result数组是否非空,且至少有一个元素包含sys_id字段 has_sys_id = any('sys_id' in item for item in result_list) if has_sys_id: print("sys_id available") else: print("empty json")
补充说明
- 用
data.get('result', [])避免因JSON中不存在result键导致的报错 any('sys_id' in item for item in result_list)遍历result数组中的每个对象,只要有一个对象包含sys_id字段就返回True- 移除了不必要的
pandas和spark相关代码,若实际场景需要保留可自行加回,不影响核心判断逻辑
内容的提问来源于stack exchange,提问作者iroh
相关产品推荐
相关产品推荐

