
如何用 python 深入遍历 json 结构,按树结构打印?
在处理复杂多层的 json 数据时,按层次结构打印其内容会更有条理和可读性。
问题:
本文提供了一个 json 结构,需要将其所有节点深度遍历并按树结构打印出来。
立即学习“Python免费学习笔记(深入)”;
答案:
Easily find JSON paths within JSON objects using our intuitive Json Path Finder
30
为了实现嵌套 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 对象,并将每个键值对或列表元素打印为缩进的字符串。通过指定缩进参数,我们可以控制树状打印的层次结构。
示例:
使用示例 json 结构:
{
"id": "series",
"css": "wrapper",
"html": [
{
"id": "series",
"css": "header",
"html": [
{
"css": "topbar",
"html": []
},
{
"css": "mask",
"html": []
},
{
"css": "layer",
"html": []
}
]
},
{
"id": "series",
"css": "container",
"html": []
},
{
"position": []
},
{
"footer": []
}
]
}输出结果:
-id --series -css --wrapper -html --0 ---id ----series ---css ----header ---html ----0 -----css ------topbar -----html -------"" ----1 -----css ------mask -----html -------"" ----2 -----css ------layer -----html -------"" --1 ---id ----series ---css ----container ---html -------"" --2 ---position -------"" --3 ---footer -------""
以上就是如何用Python递归打印JSON树状结构?的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号