import json from dir_to_json import get_json def compare_json(json1, json2): items1 = list(enumerate(json1)) items2 = list(enumerate(json2)) for i, item1 in items1: for j, item2 in items2: if item1["name"] == item2["name"]: if all([item1["is_file"], item2["is_file"]]): if item1["checksum"] == item2["checksum"]: json1[i] = None json2[j] = None elif all([not item1["is_file"], not item2["is_file"]]): new_json1, new_json2 = compare_json( item1["content"], item2["content"]) if len(new_json1) == 0: json1[i] = None else: json1[i]["content"] = new_json1 if len(new_json2) == 0: json2[j] = None else: json2[j]["content"] = new_json2 json1 = list(filter(None, json1)) json2 = list(filter(None, json2)) return json1, json2 if __name__ == "__main__": import sys folder_1 = sys.argv[1] folder_2 = sys.argv[2] try: json1 = get_json(folder_1) json2 = get_json(folder_2) except Exception: print("error outside") json1, json2 = compare_json(json1, json2) #print(len(json1), len(json2)) print(json.dumps(json1, indent=4)) print("\n============\n") print(json.dumps(json2, indent=4))