{ "id": 1, "name": "Test", "fils": [ {"id": 2, "name": "Test", "fils": []}, {"id": 4, "name": "Test", "fils": []}, { "id": 5, "name": "Test", "fils": [ { "id": 12, "name": "Test", "fils": [{"id": 14, "name": "test", "fils": []}], } ], }, ], }
所以我的目标是得到所有的id,它们是[1,2,4,5,12,14]。 有没有什么方法可以通过递归函数或其他方式实现呢?
可以使用递归。如果 dct 你的字典是从问题中提取的吗
dct
def get_ids(d): if isinstance(d, dict): for k, v in d.items(): if k == "id": yield v else: yield from get_ids(v) elif isinstance(d, list): for v in d: yield from get_ids(v) ids = list(get_ids(dct)) print(ids)
印刷品:
[1, 2, 4, 5, 12, 14]