dct = {'global': {'bar': {'bar1': {'bar2': {}}, 'b': 1, 'zoo': {}}}}
answers = []
# open dictionary that contains 'arg' among key
def get_d(d, arg):
    for key in d:
        if key == arg:
            return d
        elif isinstance(d[key], dict) and d[key] != {}:
            answers.append(get_d(d[key], arg))
get_d(dct, 'zoo')
print(answers) # [None, {'bar1': {'bar2': {}}, 'b': 1, 'zoo': {}}, None]
But I want the function to return only that dict, without using a list.
# If you change 'answers.append(get_d(d[key], arg))' 
# on 'return get_d(d[key], arg)' result of call would be None
The answer I expect is:
# {'bar1': {'bar2': {}}, 'b': 1, 'zoo': {}}
 
    