Удаление элементов из json-словаря по ключу (Python)
Есть json-словарь 'full_dataset' (см.картинку ниже), и есть список с именами файлов 'train_dict', содержимое которого '['COCO_train2014_000000000009.jpg','COCO_train2014_000000000025.jpg',... и тд]'.
Нужно сверить словарь со списком, и удалить все записи из словаря, в поле 'filename' которых записаны значения НЕ из списка. Проще говоря, удалить записи об отсутствующих изображениях, тем самым получив словарь, в котором описываются изображения только из списка 'train_dict'.
Использовал такую конструкцию, но судя по всему нужно делать по-другому. Подскажите, пожалуйста, как будет верно, заранее спасибо!
for i in full_dataset['images']:
if i['filename'] not in train_dict:
del i

Ответы (1 шт):
Я бы сделал наоборот: создал новый список, в котором только словари, где значение по ключу 'filename' есть в списке.
full_dataset['images'] = [image_info for image_info in full_dataset['images']
if image_info['filename'] in train_dict]