Объединить дубликаты элементов JSON с помощью Python - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу выполнить дедупликацию файлов изображений, которые у меня есть на диске. У меня есть файл JSON, который описывает пары дубликатов (вывод из duplicate-image-finder). Если бы я настроил правила автоудаления, потому что часто существует более двух повторяющихся изображений, есть риск, что я смогу отменить связь всех экземпляров изображений. Пример файла json выглядит следующим образом:

{"images" : [
    {"image1": "./folder1/IMG_013251.jpg", "image2": "./folder3/IMG_013251.jpg", "similarity": 100},
    {"image1": "./folder1/IMG_013251.jpg", "image2": "./folder5/IMG-WA0149.jpg", "similarity": 100},
    {"image1": "./folder1/IMG-WA0149.jpg", "image2": "./folder4/IMG-WA0125.jpg", "similarity": 100},
    {"image1": "./folder5/IMG-WA0149.jpg", "image2": "./folder4/IMG-WA0125.jpg", "similarity": 100},
    {"image1": "./folder2/IMG-WA0149.jpg", "image2": "./folder3/IMG-WA0125.jpg", "similarity": 100},
    {"image1": "./folder3/IMG_045262.jpg", "image2": "./folder8/IMG_013251.jpg", "similarity": 100},
    {"image1": "./folder4/IMG-WA0024.jpg", "image2": "./folder1/IMG-WA0079.jpg", "similarity": 100},
    {"image1": "./folder5/IMG-WA0130.jpg", "image2": "./folder4/IMG-WA0024.jpg", "similarity": 100}]}

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


{"images" : [
    {"image1": "./folder1/IMG_013251.jpg", "image2": "./folder3/IMG_013251.jpg", "image3": "./folder5/IMG-WA0149.jpg", "similarity": 100},    
    {"image1": "./folder1/IMG-WA0149.jpg", "image2": "./folder4/IMG-WA0125.jpg", "image3": "./folder5/IMG-WA0149.jpg", "similarity": 100},  
    {"image1": "./folder2/IMG-WA0149.jpg", "image2": "./folder3/IMG-WA0125.jpg", "similarity": 100},
    {"image1": "./folder3/IMG_045262.jpg", "image2": "./folder8/IMG_013251.jpg", "similarity": 100},
    {"image1": "./folder4/IMG-WA0024.jpg", "image2": "./folder1/IMG-WA0079.jpg", "image3": "./folder5/IMG-WA0130.jpg", "similarity": 100}]}

Мой первоначальный подход былсоздать два списка, затем сравнить каждый элемент с любым другим элементом, удалив дубликаты в словарь. Я попробовал это, и это не дало мне полезного результата. Я также посмотрел на метод dict.update (), но я не уверен, как сначала определить дубликаты диктов. Как еще я могу подойти к этому?

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...