删除字典中的空值

def remove_none_values_iterative(data):
    stack = [data]
    
    while stack:
        current = stack.pop()
        
        if isinstance(current, dict):
            for key, value in list(current.items()):
                if value is None:
                    del current[key]
                else:
                    stack.append(value)
        elif isinstance(current, list):
            current[:] = [item for item in current if item is not None]
            stack.extend(reversed(current))
    
# 测试数据
nested_data = {
    'name': None,
    'age': 25,
    'address': {
        'city': 'New York',
        'zip': '10001'
    },
    'friends': [
        {'name': None, 'age': 23},
        {'name': 'Bob', 'age': 27}
    ]
}

# 删除None值
remove_none_values_iterative(nested_data)

# 打印结果
print(nested_data)

posted @ 2024-01-22 23:40  岁叶年华  阅读(22)  评论(0)    收藏  举报