Python中不使用for/while等循环 递归遍历打印JSON文件的实现方法
实现思路
- 递归遍历的核心逻辑是把序列遍历拆分为「处理当前首个元素」+「递归处理剩余子序列」,终止条件为待处理序列为空
- 首先拆分功能:单独做JSON文件读取逻辑,单独做递归打印逻辑,避免耦合
- 针对列表类型的JSON根节点:每次取第一个元素处理,剩余元素切片后传入递归函数,长度为0时终止递归
- 针对列表内的字典元素:将字典转为键值对元组列表后,套用同样的递归遍历逻辑打印每个键值对即可
- 全程无for/while等循环语句,所有遍历逻辑均由递归实现
完整实现代码
import json def recursive_print_dict(kv_pairs): # 递归打印字典键值对,终止条件:键值对列表为空 if len(kv_pairs) == 0: return key, value = kv_pairs[0] print(f"{key}: {value}", end=" | ") # 递归处理剩余键值对 recursive_print_dict(kv_pairs[1:]) def recursive_print_list(arr): # 递归打印列表元素,终止条件:列表为空 if len(arr) == 0: return # 处理当前元素(当前为字典类型) current_item = arr[0] recursive_print_dict(list(current_item.items())) print() # 每条数据换行 # 递归处理剩余列表元素 recursive_print_list(arr[1:]) def showData(file_path): # 读取JSON文件并触发递归打印 with open(file_path, 'r', encoding='utf-8') as f: data = json.load(f) recursive_print_list(data) # 执行调用 showData("Category.json")
代码说明
- 所有遍历逻辑均通过递归实现,未使用任何for/while循环语句,符合作业要求
- 用
with open读取文件,自动处理文件关闭,避免资源泄漏 - 递归终止条件清晰:当待处理的序列长度为0时直接返回,不会出现无限递归
- 适配你的Category.json数据结构,如果后续JSON结构更复杂(比如嵌套列表/字典),只需在类型判断分支补充对应递归逻辑即可
内容的提问来源于stack exchange,提问作者zakybaraq
相关产品推荐
相关产品推荐

