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

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

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免费学习笔记(深入)”;

Find JSON Path Online
Find JSON Path Online

Easily find JSON paths within JSON objects using our intuitive Json Path Finder

Find JSON Path Online 30
查看详情 Find JSON Path Online

要遍历 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
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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