如何用Python优雅地打印多层嵌套JSON数据的树状结构?

花韻仙語
发布: 2025-03-14 08:50:01
原创
1163人浏览过

如何用python优雅地打印多层嵌套json数据的树状结构?

本文介绍如何利用Python代码,将任意层级的JSON数据以直观的树状结构打印出来,方便理解和调试复杂的JSON数据。我们将通过示例代码详细讲解实现方法。

目标是遍历多层嵌套的JSON数据,并将其以树状结构呈现,清晰地展现数据层级关系。这需要一个递归算法,能够灵活处理JSON对象(字典)和JSON数组(列表)。

以下Python代码实现了该功能:

SpeakingPass-打造你的专属雅思口语语料
SpeakingPass-打造你的专属雅思口语语料

使用chatGPT帮你快速备考雅思口语,提升分数

SpeakingPass-打造你的专属雅思口语语料 25
查看详情 SpeakingPass-打造你的专属雅思口语语料
import json

def print_json_tree(json_obj, indent=0):
    """递归函数,以树状结构打印JSON数据"""
    if isinstance(json_obj, dict):
        for key, value in json_obj.items():
            print('  ' * indent + f'{key}:') # 使用f-string更简洁
            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_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_tree(json_obj)
登录后复制

这段代码定义了一个递归函数print_json_tree,根据输入对象的类型(字典或列表)进行不同的处理,并使用空格缩进表示层级关系。 代码更简洁地使用了f-string格式化字符串。 运行代码即可得到清晰的JSON数据树状结构输出。

立即学习Python免费学习笔记(深入)”;

以上就是如何用Python优雅地打印多层嵌套JSON数据的树状结构?的详细内容,更多请关注php中文网其它相关文章!

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号