We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Describe the bug Exception is thrown when using the sort_keys=True kwarg when using the to_json() method of a deepdiff.Deepdiff() object.
sort_keys=True
to_json()
deepdiff.Deepdiff()
The bug is in the serialization.py code if orjson is defined/used:
serialization.py
orjson
def json_dumps(item, default_mapping=None, **kwargs): """ Dump json with extra details that are not normally json serializable """ if orjson: indent = kwargs.pop('indent', None) sort_keys = kwargs.pop('sort_keys', None) if indent: kwargs['option'] = orjson.OPT_INDENT_2 return orjson.dumps( item, default=json_convertor_default(default_mapping=default_mapping), **kwargs).decode(encoding='utf-8') else: return json.dumps( item, default=json_convertor_default(default_mapping=default_mapping), **kwargs)
The fix would seem to be to handle all of the supported kwargs and translate them to their respective orjson opt. I.e. add in the following lines:
if sort_keys: kwargs['sort_keys'] = orjson.OPT_SORT_KEYS ... etc
To Reproduce
NOTE: Need the orjson import to be defined (I'm not sure what allows this to happen, but the bug is hidden behind the if orjson: conditional
if orjson:
Otherwise can just do the following:
diff = deepdiff.DeepDiff(dict1, dict2) if diff: diff.to_json(indent=4, sort_keys=True)
Expected behavior
diff.to_json() should not choke on standard json.dumps() kwargs (e.g. sort_keys)
diff.to_json()
sort_keys
OS, DeepDiff version and Python version (please complete the following information):
deepdiff==7.0.1
The text was updated successfully, but these errors were encountered:
My hack workaround in meantime:
diff_json = diff.to_json() diff_json_sorted = json.dumps(json.loads(diff_json), indent=4, sort_keys=True)
Sorry, something went wrong.
No branches or pull requests
Describe the bug
Exception is thrown when using the
sort_keys=True
kwarg when using theto_json()
method of adeepdiff.Deepdiff()
object.The bug is in the
serialization.py
code iforjson
is defined/used:The fix would seem to be to handle all of the supported kwargs and translate them to their respective orjson opt. I.e. add in the following lines:
To Reproduce
NOTE: Need the
orjson
import to be defined (I'm not sure what allows this to happen, but the bug is hidden behind theif orjson:
conditionalOtherwise can just do the following:
Expected behavior
diff.to_json()
should not choke on standard json.dumps() kwargs (e.g.sort_keys
)OS, DeepDiff version and Python version (please complete the following information):
deepdiff==7.0.1
The text was updated successfully, but these errors were encountered: