2011-12-09 54 views
2

我想遍历每个节点? python中的JSON对象。我想实现像遍历Python中的JSON

def function(data): 
     for element in data: 
       --- do something---- 
       if (some condition): 
         function(element) 

递归函数什么,我想知道的是我怎么能找到,如果有问题的元素是另一个对象或只是一个字符串。也就是说,我应该写什么而不是上面的代码中的'某些条件'。就像当我走过一个XML,我检查它是否有任何使用getchildren()的孩子,如果它有,我递归地再次调用函数.....

回答

1

一个很好的Python的方式做到这一点可能是这样的:

def function(data): 
    try: 
     for element in data: 
     --- do something---- 
     function(element) 
    except TypeError: 
     pass 

做的东西,让蟒蛇提高如有异常你尝试迭代一些不可迭代的东西;)

0

您可以使用type(var)函数来检查元素是否字典或列表。

def recurse(data): 
    for element in data: 
     if type(element) is list or type(element) is dict: 
      recurse(element) 
     else: 
      # do something with element 
      pass 
1

使用type一般在Python中有利于更多的功能isinstance的皱起了眉头。您也可以使用isinstance测试多种类型的在同一时间:

if isinstance(myVar, (list, tuple)): 
    # Something here. 
+0

为什么?为什么眉头皱眉? –