def remove_empty_values(d):
"""
递归遍历嵌套的 JSON,去除 value 为空的key
"""
# 如果 d 是一个字典,遍历其键值对
if isinstance(d,dict):
for k,vin list(d.items()):
# 如果 v 是一个字典或列表,则递归调用 remove_empty_values 函数
if isinstance(v,(dict,list)):
remove_empty_values(v)
# 如果 v 为空,则删除这个键值对
elif not v:
del d[k]
# 如果 d 是一个列表,则遍历其元素
elif isinstance(d,list):
for itemin d:
# 如果元素是一个字典或列表,则递归调用 remove_empty_values 函数
if isinstance(item,(dict,list)):
remove_empty_values(item)
# 如果元素为空,则删除这个元素
# elif not item:
# d.remove(item)
data= {
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "",
"state": "",
"zip": "12345"
},
"phones": [
"555-1234",
"",
"555-5678",
{"a":""}
]
}