Как удалить словарь из списка, который не является пустым полностью? - PullRequest
0 голосов
/ 28 января 2019

У меня есть список, который выглядит следующим образом:

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

Объект словаря не является действительно пустым в списке, так как мне удалить этот «пустой» объект, который на самом деле не пуст?новый список должен выглядеть следующим образом:

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

Я пытался:

[i for i in mylist if i]

, но, поскольку объект словаря не является полностью пустым, я думаю, что я не могу его удалить.

edit:

Я поместил приведенный ниже код в мой процесс очистки данных 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 голосов
/ 28 января 2019

Вы можете попробовать это.Он надежен для диктовок с более чем одним ключом, а также для типов данных, отличных от строки:

mylist = [{'name':'bob'},{'name':''},{'name':'test2'}]
new_list = [d for d in mylist if any(d.values())]
0 голосов
/ 28 января 2019

Вам нужно протестировать клавишу name каждого dict, я бы сделал это, проверив, что длина имени больше нуля:

>>> d = [{'name':'bob'},{'name':''},{'name':'test2'}]
>>> [i for i in d if len(i["name"]) > 0]
[{'name': 'bob'}, {'name': 'test2'}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...