Привет! В такой ситуации рекурсивный метод решает свою задачу. Вот пример:
Программный код:
def filter_nested_dict(d, condition):
if isinstance(d, dict):
return {k: filter_nested_dict(v, condition) for k, v in d.items() if condition(k, v)}
elif isinstance(d, list):
return [filter_nested_dict(item, condition) for item in d if condition(None, item)]
else:
return d if condition(None, d) else None
def condition(key, value):
return isinstance(value, dict) and "filter_key" in value
nested_dict = {
"a": {"filter_key": 100, "another_key": 200},
"b": {"filter_key": 300, "another_key": 400},
"c": {"random_key": 500}
}
filtered_dict = filter_nested_dict(nested_dict, condition)
print(filtered_dict)
Удачи!