Skip to content

Commit da12f19

Browse files
committed
skip object_pairs_hook in case we need default behavior
1 parent c4e4bd6 commit da12f19

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

bson/json_util.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,11 @@ def loads(s: Union[str, bytes, bytearray], *args: Any, **kwargs: Any) -> Any:
497497
Accepts optional parameter `json_options`. See :class:`JSONOptions`.
498498
"""
499499
json_options = kwargs.pop("json_options", DEFAULT_JSON_OPTIONS)
500-
kwargs["object_pairs_hook"] = lambda pairs: object_pairs_hook(pairs, json_options)
500+
# Execution time optimization if json_options.document_class is dict
501+
if json_options.document_class is dict:
502+
kwargs["object_hook"] = lambda pairs: object_hook(pairs, json_options)
503+
else:
504+
kwargs["object_pairs_hook"] = lambda pairs: object_pairs_hook(pairs, json_options)
501505
return json.loads(s, *args, **kwargs)
502506

503507

0 commit comments

Comments
 (0)