如何从python字典中删除None值?

问题描述

我有这样的python字典

data_dict = {'col_1': [{'size': 3},{'classes': 'my-3 text-light text-center bg-primary'},{'styles': [{'font-size': '14px'}]}]}

我使用jmespath库,试图达到这样的字典预期效果

{'size':3,'classes':'my-3 text-light text-center bg-primary','styles':[{'font-size': '14px'}]}

根据jmespath文档MultiSelect,我最终是这样的:

jmespath.search('*[].{size:size,class:classes,styles:styles}',data_dict)

结果,我得到了None值字典这样不必要的键/值对

[{'size': 3,'class': None,'styles': None},{'size': None,'class': 'my-3 text-light text-center bg-primary','styles': [{'font-size': '14px'}]}]

我的问题是如何删除键/值None以获得所需的结果?谢谢。

解决方法

NewDictList = []
res = [{'size': 3,'class': None,'styles': None},{'size': None,'class': 'my-3 text-light text-center bg-primary','styles': [{'font-size': '14px'}]}]
for dict_values in res:
    result = {key: value for key,value in dict_values.items() if value is not None}
    NewDictList.append(result)
print(NewDictList)
#result is [{'size': 3},{'class': 'my-3 text-light text-center bg-primary'},{'styles': [{'font-size': '14px'}]}]