Python如何以树状结构打印多层嵌套JSON数据?

DDD
发布: 2024-11-21 16:08:13
原创
371人浏览过

python如何以树状结构打印多层嵌套json数据?

如何用 python 遍历 n 级 json 并以树状打印

问题:

如何遍历并全量打印如下 json 数据中的所有节点,使其呈现树状结构?

{
  "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": ""
        }
      ]
    }
  ]
}
登录后复制

回答:

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

要遍历 n 级 json 并以树状打印其所有节点,可以使用以下 python 函数:

def print_json_tree(json_obj, indent=0):
    if isinstance(json_obj, dict):
        for key, value in json_obj.items():
            print('-' * indent + str(key))
            print_json_tree(value, indent+2)
    elif isinstance(json_obj, list):
        for item in json_obj:
            print_json_tree(item, indent+2)
    else:
        print('-' * indent + str(json_obj))
登录后复制

该函数以递归的方式遍历 json 对象,使用缩进字符(-)来表示不同的层级。具体过程如下:

  1. 如果当前对象是字典(dict),遍历其键和值,并将值作为新的一层进行遍历。
  2. 如果当前对象是列表(list),遍历列表中的每个元素,并将元素作为新的一层进行遍历。
  3. 如果当前对象是标量类型(字符串、整数、浮点数等),则直接打印出来。

通过调用此函数,可以以树状格式遍历并打印 json 对象的全部内容。

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

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

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

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

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