Python嵌套JSON/字典提取列表项统计Activation为False的数量
嵌套字典统计Activation为False条目的实现方案
首先需要修正原函数定义的语法问题:原写法def count_false:缺少参数列表,属于不合法的Python语法,实际实现需要将待统计的嵌套字典作为入参传入函数。
实现版本
定向匹配固定结构的版本
完全匹配题目给出的字典层级结构,逻辑直接,执行开销极低:
def count_false(data: dict) -> int: count = 0 # 逐层遍历固定嵌套路径 for list1_entry in data["fields"]["List1"]: for list2_entry in list1_entry["List2"]: for list3_entry in list2_entry["List3"]: if list3_entry.get("Activation") is False: count += 1 return count
代入题目给出的示例数据运行时,可正确统计到2条符合条件的条目,返回值与预期一致。
支持任意深度嵌套的通用版本
如果后续嵌套结构的层级、中间键名存在调整,不需要逐行修改代码,可通过递归遍历全量结构的方式实现统计:
def count_false(data) -> int: count = 0 if isinstance(data, dict): # 匹配当前层级的目标键 if data.get("Activation") is False: count += 1 # 递归遍历字典的所有值 for value in data.values(): count += count_false(value) elif isinstance(data, list): # 递归遍历列表的所有元素 for item in data: count += count_false(item) return count
实现细节:判断匹配条件时使用
is False而非弱等价判断,可避免将数值0、空值等等效为布尔False的非目标值误统计,严格匹配"键为Activation且值为布尔类型False"的统计规则。
内容的提问来源于stack exchange,提问作者kihhfeue
相关产品推荐
相关产品推荐

