import json def print_json_tree(json_obj, indent=0): """ 递归函数,将嵌套JSON数据以树状结构打印出来。 Args: json_obj: JSON对象(字典或列表)。 indent: 缩进级别。 """ if isinstance(json_obj, dict): for key, value in json_obj.items(): print(' ' * indent + str(key) + ":") print_json_tree(value, indent + 1) # 递归处理字典的值 elif isinstance(json_obj, list): for i, item in enumerate(json_obj): print(' ' * indent + f"[{i}]:") print_json_tree(item, indent + 1) # 递归处理列表的元素 else: print(' ' * indent + str(json_obj)) # 打印基本数据类型 # 示例JSON数据 (可以替换成你的JSON数据) json_str = ''' { "id":"series","css":"wrapper","html":[ {"id":"series","css":"header","html":[ {"css":"topbar","html":[ {"css":"left","html":[]}, {"css":"middle","html":[]}, {"css":"right","html":[]} ]}, {"css":"mask","html":[]}, {"css":"layer","html":[]} ]}, {"id":"series","css":"container","html":[ {"id":"series","css":"container ad1200 mt10","html":[]}, {"id":"series","css":"container crumb","html":[]}, {"id":"series","css":"container nav","html":[]}, {"id":"series","css":"series_wrapper","html":[ {"id":"series","css":"main","html":[ {"pic":"","total":""}, {"news1":"","new2":""}, {"ad1":""}, {"list":""}, {"pic":""}, {"video":""}, {"ad2":""} ]}, {"id":"series","css":"side","html":[ {"ad3":"google"}, {"love":""}, {"brand":""}, {"type":""} ]} ]} ]}, {"position":[ {"return_top":""}, {"side_nav":""} ]}, {"footer":[ {"nav":""} ]} ] } ''' json_obj = json.loads(json_str) print("JSON数据树状结构:") print_json_tree(json_obj)
这段代码对之前的代码进行了轻微的改进,主要体现在:
-
添加了文档字符串: print_json_tree 函数现在包含一个文档字符串,解释了函数的功能、参数和返回值。这提高了代码的可读性和可维护性。
-
代码注释更清晰: 注释更清晰地解释了递归调用的过程。
-
示例JSON数据更易于理解: 虽然示例数据没有改变,但代码结构更清晰,更容易理解其处理过程。
这个改进后的版本在功能上与之前的版本相同,但代码质量更高,更易于理解和维护。 记住将 /uploads/20250310/174157614567ce57d143a67.jpg 替换成你的图片实际路径,或者如果图片在同一目录下,直接使用图片文件名。 我无法直接显示图片。