【发布时间】:2022-01-06 05:18:14
【问题描述】:
如果 key 的值为 nan/None/NaN/null ,我想删除字典。如果 nan 是 phone_type 工作的唯一值,则删除整个字典本身。
输入数据
dic = ['Customer_Number': 12345,'Phone_Number': [{'Phone_Type': 'Mobile', 'Phone': [1217]}, {'Phone_Type': 'work', 'Phone': [nan]}]]
预期输出数据
dic = ['Customer_Number': 12345,'Phone_Number': [{'Phone_Type': 'Mobile', 'Phone': [1217]}]]
代码尝试
#define which elements you want to remove:
to_be_deleted = [[], {}, "", None, "nan",nan, "NaN", NaN]
def remove_empty_elements(jsonData):
if isinstance(jsonData, list):
print("jsonDAta:", jsonData)
jsonData = [remove_empty_elements(elem) for elem in jsonData
if remove_empty_elements(elem) not in to_be_deleted]
elif isinstance(jsonData, dict):
jsonData = {key: remove_empty_elements(value) for key, value in jsonData.items()
if remove_empty_elements(value) not in to_be_deleted}
if len(jsonData) == 1:
return None
return jsonData
res = remove_empty_elements(dic)
【问题讨论】: