输入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}}}