diff --git a/jsonpatch.py b/jsonpatch.py index d3fc26d..e59de28 100644 --- a/jsonpatch.py +++ b/jsonpatch.py @@ -859,10 +859,9 @@ def _item_replaced(self, path, key, item): }, pointer_cls=self.pointer_cls)) def _compare_dicts(self, path, src, dst): - src_keys = set(src.keys()) - dst_keys = set(dst.keys()) - added_keys = dst_keys - src_keys - removed_keys = src_keys - dst_keys + added_keys = [key for key in dst.keys() if key not in src.keys()] + removed_keys = [key for key in src.keys() if key not in dst.keys()] + intersection = [key for key in src.keys() if key in dst.keys()] for key in removed_keys: self._item_removed(path, str(key), src[key]) @@ -870,7 +869,7 @@ def _compare_dicts(self, path, src, dst): for key in added_keys: self._item_added(path, str(key), dst[key]) - for key in src_keys & dst_keys: + for key in intersection: self._compare_values(path, key, src[key], dst[key]) def _compare_lists(self, path, src, dst):