擅长:python、mysql、java
<p>很难确切地理解您在这里想要的是什么,但是由于某种原因,您似乎有一堆嵌套的json,您希望在其中搜索一个<code>id</code>并返回一个表示json嵌套路径的列表。如果是这样的话,快速而简单的方法是在字典(从<code>json.load</code>)上递归并收集键。当您找到与您正在搜索的<code>'id'</code>匹配的<code>'id'</code>键时,就完成了。下面是一些代码:</p>
<pre><code>def all_keys(search_dict, key_id):
def _all_keys(search_dict, key_id, keys=None):
if not keys:
keys = []
for i in search_dict:
if search_dict[i] == key_id:
return keys + [i]
if isinstance(search_dict[i], dict):
potential_keys = _all_keys(search_dict[i], key_id, keys + [i])
if 'id' in potential_keys:
keys = potential_keys
break
return keys
return _all_keys(search_dict, key_id)[:-1]
</code></pre>
<p>嵌套函数的原因是去掉<code>'id'</code>键,否则它将位于列表的末尾。在</p>
<p>这实际上只是为了让你知道一个解决方案可能是什么样子。<a href="https://stackoverflow.com/questions/3323001/maximum-recursion-depth">Beware the python recursion limit</a>!在</p>