JSON Diff Python
# Assumption - json files are of same format, with same keys
# A function to remove duplicate values
def unique(lst):
unique_lst = []
# Iterate over the original list and for each element
# add it to unique_lst, if its not already there.
for elem in lst:
if elem not in unique_lst:
unique_lst.append(elem)
return unique_lst
# Using dictionary
def compare_json(json_file_1, json_file_2):
with open(json_file_1, 'r') as f1, open(json_file_2, 'r') as f2:
data1 = json.load(f1)
data2 = json.load(f2)
key_list = set(data1.keys()).union(set(data2.keys()))
difference = {key: list(set(data1.get(key, [])).difference(set(data2.get(key, []))))
for key in key_list}
return difference
# Using list
def compare_json_2(json_file_1, json_file_2):
with open(json_file_1, 'r') as f1, open(json_file_2, 'r') as f2:
data1 = json.load(f1)
data2 = json.load(f2)
#Assuming both json files have same format
key_list = data1.keys()
difference = {}
for key in key_list:
difference[key] = list(set(data1[key]).difference(set(data2[key])))
difference[key] = unique(difference[key])
return difference
print(compare_json('json_1.json', 'json_2.json'))
print(compare_json_2('json_1.json', 'json_2.json'))
Intempestive Al Dente