python通过递归清除字典中value为特定值的key

输入dict

person = {'a': {'age': 43, 'addr': ''}, 'b': {'age': 0, 'addr': 'China', 'd': {'age': 43, 'addr': ''}}, 'c': {'age': 0, 'addr': None}}

代码


_filter = [0, '0', None, '']
_key_list = {}

def get_k(data_json, target=_key_list, filter=_filter):
    for key in data_json.keys():
        if isinstance(data_json[key], dict):
            if not bool(data_json[key]):
                continue
            target[key] = {}
            get_k(data_json[key], target[key])
        else:
            if data_json[key] not in filter:
                target[key] = data_json[key]
    return target

输出

运行一次

{'a': {'age': 43}, 'b': {'addr': 'China', 'd': {'age': 43}}, 'c': {}}

运行两次

{'a': {'age': 43}, 'b': {'addr': 'China', 'd': {'age': 43}}}

posted on 2021-05-05 01:20  BionExit  阅读(372)  评论(0编辑  收藏  举报

导航