import jsondef 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数据更易于理解: 虽然示例数据没有改变,但代码结构更清晰,更容易理解其处理过程。
立即学习“Python免费学习笔记(深入)”;
这个改进后的版本在功能上与之前的版本相同,但代码质量更高,更易于理解和维护。 记住将 /uploads/20250310/174157614567ce57d143a67.jpg 替换成你的图片实际路径,或者如果图片在同一目录下,直接使用图片文件名。 我无法直接显示图片。
以上就是如何用Python将多层嵌套的JSON数据以树状结构打印出来?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1358994.html
微信扫一扫
支付宝扫一扫