如何找到python字典或JSON对象的最大"深度"?

Sta*_*tec 3 python json dictionary

我有一个json字符串,我想知道它的最大深度是多少.深度我的意思是嵌入密钥的数量.因此,如果一个键作为7个"孩子"而且知道其他键有那么多,则深度为8.

由于可以嵌入其他对象的唯一类型(我相信)是数组和其他所有需要检查的字典.有没有办法检查这个?

我希望在没有外部模块的情况下实现这一点,但如果不是,我的目标是python3.

注意:这就是我所说的"深度"

以下字典:

{
  "path": "/0001_Anthem",
  "name": "0001_Anthem",
  "isMovie": true,
  "runtime": 3600,
  "thumbnailLocation": "/thubs/test.png",
  "id": 1, 
  "media": [
    {
      "path": "/0001_Anthem/louvers.mp4",
      "name": "louvers.mp4"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

将具有"深度"或长度,3因为最远的嵌入项是media数组(级别2)中的键/值对(级别3 ),在主dictionary(级别1)中.我不确定其他人使用的术语,这只是我认为有意义的术语.

谢谢

Blo*_*ard 9

这是一个实现:

def depth(x):
    if type(x) is dict and x:
        return 1 + max(depth(x[a]) for a in x)
    if type(x) is list and x:
        return 1 + max(depth(a) for a in x)
    return 0
Run Code Online (Sandbox Code Playgroud)