【发布时间】:2018-06-17 12:42:48
【问题描述】:
我有以下字典:
dict_2 = {
'key1': {'subkey1': 2, 'subkey2': 7, 'subkey3': 5},
'key2': {'subkey1': None, 'subkey2': None, 'subkey3': None},
}
我期待通过删除带有嵌套字典的整个键来清除 None 中的 None 值中的 dict_2:
简而言之,我的输出应该是:
dict_2={key1:{subkey1:2,subkey2:7,subkey3:5}}
我尝试的是:
glob_dict={}
for k,v in dict_2.items():
dictionary={k: dict_2[k] for k in dict_2 if not None (dict_2[k]
['subkey2'])}
if bool(glob_dict)==False:
glob_dict=dictionary
else:
glob_dict={**glob_dict,**dictionary}
print(glob_dict)
我目前的输出是:
TypeError: 'NoneType' object is not callable
我不确定循环是否是摆脱嵌套循环的None 值的最佳方法,我也不确定如何表达我想摆脱None价值观。
【问题讨论】:
-
@IMCoins 感谢您的回复,但是更改后它继续输出相同的错误,我猜它与:
dictionary={k: dict_2[k] for k in dict_2 if not None (dict_2[k] ['subkey2'])} -
你想删除所有为None的子键,并删除没有剩余子键的键?
-
我假设
dict_2={key1:{subkey1:None,subkey2:7,subkey3:5},key2:{subkey1:4,subkey2:None,subkey3:None}}应该导致dict_2={key1:{subkey2:7,subkey3:5},key2:{subkey1:4}}?所以只有没有任何子键的键被删除?
标签: python dictionary nested