我正在尝试从一个嵌套字典中删除非值。 我的第一次尝试效果很好,但不幸的是,指向现在为空的字典的键仍然存在。
因此,如果我执行以下操作:
pass1 = stripper(my_dict)
return stripper(pass1)
这个方法可行,不过我认为可能存在更加优雅且嵌套性更强的解决方案?
def stripper(self, data):
if isinstance(data, dict):
d = ({k: stripper(v) for k, v in data.items()
if v not in [u'', None]})
if d:
return d
else:
return data
编辑:
失败的例子,下面的字典返回为{'foo': 'bar', 'bar': None}
:
{
'foo': 'bar',
'bar': {
'foo': None,
'one': None
}
}