如何从不完全为空的列表中删除字典?

时间:2019-01-28 00:21:32

标签: python-3.x list dictionary

我有一个看起来像这样的列表:

 [{'name':'bob'},{'name':''},{'name':'test2'}]

字典对象在列表中不是真的为空,那么如何删除这个不是真的为空的“空”对象呢?新列表应如下所示:

 [{'name':'bob'},{'name':'test2'}]

我尝试过:

[i for i in mylist if i]

但是,由于字典对象不是完全为空,所以我无法删除它。

编辑:

我将以下代码放入JSON数据清理过程中,如下所示:

for json in list:
   try:
      name = extract_json
      name = [i for i in name if len(i["name"]) > 0]
   except:
      name = None

我只想在需要时才清理列表。

2 个答案:

答案 0 :(得分:1)

您需要测试每个name的{​​{1}}键,我可以通过检查名称的长度是否大于零来做到这一点:

dict

答案 1 :(得分:1)

您可以尝试一下。对于具有多个键且不包含字符串的数据类型的字典,它是万无一失的。

mylist = [{'name':'bob'},{'name':''},{'name':'test2'}]
new_list = [d for d in mylist if any(d.values())]