python 清除json里面的空数据,包括空dict,空list,空string,None

记录自己的面试题

param_data = {"a": {"a": [None, "", {}, {"x": None}]}, "b": 0}


def value_is_not_empty(value):
return value not in ['', None, {}, []]


def empty_json_data(data):
if isinstance(data, dict):
temp_data = dict()
for key, value in data.items():
if value_is_not_empty(value):
new_value = empty_json_data(value)
if value_is_not_empty(new_value):
temp_data[key] = new_value
return None if not temp_data else temp_data

elif isinstance(data, list):
temp_data = list()
for value in data:
if value_is_not_empty(value):
new_value = empty_json_data(value)
if value_is_not_empty(new_value):
temp_data.append(new_value)
return None if not temp_data else temp_data

elif value_is_not_empty(data):
return data


data = empty_json_data(param_data)
print(data)
posted @ 2020-08-09 21:00  牛牛码代码  阅读(872)  评论(0编辑  收藏  举报