访问json树的叶子 [英] access leaves of json tree

查看:103
本文介绍了访问json树的叶子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个格式为JSON的文件:

I have a JSON file of the form:

{"id":442500000116137984, "reply":0, "children":[{"id":442502378957201408, "reply":0, "children":[]}]}
{"id":442500001084612608, "reply":0, "children":[{"id":442500145871990784, "reply":1, "children":[{"id":442500258421952512, "reply":1, "children":[]}]}]}
{"id":442500000258342912, "reply":0, "children":[{"id":442500636668489728, "reply":0, "children":[]}]}

在此,每一行都指一棵单独的树.现在我想去每一棵树的叶子,基本上要做些什么

In this each line refers to a separate tree. Now I want to go to the leaves of every tree and do something, basically

import json
f = open("file", 'r')
for line in f:
    tree = json.loads(line)
    #somehow walk through the tree and find leaves
    if isLeaf(child):
        print "Reached Leaf"

如何遍历此树对象以检测所有叶子?

How do I walk through this tree object to detect all leaves?

推荐答案

这应该有效.

import json
f = open("file", 'r')

leafArray = []

def parseTree(obj):
    if len(obj["children"]) == 0:
        leafArray.append(obj)
    else:
        for child in obj["children"]:
            parseTree(child)

for line in f:
    global leafArray
    leafArray = []
    tree = json.loads(line.strip())
    parseTree(tree) 
    #somehow walk through the tree and find leaves
    print ""
    for each in leafArray:
        print each

这篇关于访问json树的叶子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆