gpt4 book ai didi

python - 如何删除未知深度的深层嵌套字典中的空字段或无字段?

转载 作者:行者123 更新时间:2023-12-02 16:19:05 24 4
gpt4 key购买 nike

我有一个深层嵌套字典的字典,我正在尝试删除所有 None 或 ""的 k-v 对。下面的字典 d 是输入的一个例子。

d = { 
"1": {
"1_1": 'a real value',
"1_2": ""
},
"2": None,
"3": {
"3_1": {
"3_2": None
}
}
}

通常,要删除字典中的空字段,命令 {k:v for k,v in d.items() if v} 可以完成这项工作。但在这种情况下,我想删除所有值为空或 null 的嵌套字典,但我不知道该怎么做。有什么想法吗?

d经过这个转换之后,所有值为空的空字典应该都没有了。它应该看起来像这样:

{ 
"1": {
"1_1": 'a real value',
}
}

最佳答案

您可以编写一个函数来递归 删除空字典。例如:

def return_non_empty(my_dict):
temp_dict = {}
for k, v in my_dict.items():
if v:
if isinstance(v, dict):
return_dict = return_non_empty(v)
if return_dict:
temp_dict[k] = return_dict
else:
temp_dict[k] = v
return temp_dict

例如,如果 d 是:

d = { 
"1": {
"1_1": 'a real value',
"1_2": ""
},
"2": None,
"3": {
"3_1": {
"3_2": None
}
}
}

然后我的自定义函数 return_non_empty 将返回:

>>> return_non_empty(d)
{'1': {'1_1': 'a real value'}}

关于python - 如何删除未知深度的深层嵌套字典中的空字段或无字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65944618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com