from pathlib import Path
import json
p=Path(__file__).parent
a=json.loads((p/'base.json').read_text()); b=json.loads((p/'changed.json').read_text())
changes=[]
def compare(a,b,path=''):
 if isinstance(a,dict) and isinstance(b,dict):
  for k in sorted(set(a)|set(b)):
   if path=='' and k=='exported_at': continue
   compare(a.get(k),b.get(k),path+'/'+k)
 elif a!=b: changes.append({'path':path,'old':a,'new':b})
compare(a,b)
print(json.dumps(changes,ensure_ascii=False))
assert len(changes)==2
