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)中.我不确定其他人使用的术语,这只是我认为有意义的术语.
谢谢
这是一个实现:
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)