遍历Python中的JSON

时间:2011-12-09 15:54:09

标签: python json traversal

我试图遍历每个'节点?' python中的JSON对象我正在尝试实现像

这样的递归函数
def function(data):
         for element in data:
                --- do something----
                if (some condition):
                        function(element)

我想知道的是如何找到所讨论的元素是另一个对象还是一个字符串。也就是说,我应该在上面的代码中写什么而不是'某些条件'。就像我浏览XML一样,我检查它是否有任何使用getchildren()的子节点,如果有,我会再次递归调用该函数.....

3 个答案:

答案 0 :(得分:1)

在Python中,使用type通常不赞成更具功能性的isinstance。您还可以使用isinstance

同时测试多种类型
if isinstance(myVar, (list, tuple)):
  # Something here.

答案 1 :(得分:1)

一个好的pythonic方法可以是这样的:

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

如果你试图迭代一些不可迭代的东西,那么就让python引发异常;)

答案 2 :(得分: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