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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 06:39:00