https://github.com/python/cpython/commit/f87d9605d3f9489d33aaf97a97fa9cb81cd7cc40
commit: f87d9605d3f9489d33aaf97a97fa9cb81cd7cc40
branch: main
author: Thomas Kowalski <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-05-29T22:53:21+03:00
summary:

gh-149056: Properly pass array_hook in json.load() to json.loads() (GH-149057)

files:
A Misc/NEWS.d/next/Library/2026-04-29-08-10-17.gh-issue-149056.jnaD4W.rst
M Lib/json/__init__.py
M Lib/test/test_json/test_decode.py

diff --git a/Lib/json/__init__.py b/Lib/json/__init__.py
index 9681a8fe53ec480..37a86831ff94838 100644
--- a/Lib/json/__init__.py
+++ b/Lib/json/__init__.py
@@ -307,7 +307,7 @@ def load(fp, *, cls=None, object_hook=None, 
parse_float=None,
         cls=cls, object_hook=object_hook,
         parse_float=parse_float, parse_int=parse_int,
         parse_constant=parse_constant, object_pairs_hook=object_pairs_hook,
-        array_hook=None, **kw)
+        array_hook=array_hook, **kw)
 
 
 def loads(s, *, cls=None, object_hook=None, parse_float=None,
diff --git a/Lib/test/test_json/test_decode.py 
b/Lib/test/test_json/test_decode.py
index d846c8af7ec4345..1d51fb2de0e69e4 100644
--- a/Lib/test/test_json/test_decode.py
+++ b/Lib/test/test_json/test_decode.py
@@ -87,6 +87,13 @@ def test_array_hook(self):
 
         self.assertEqual(self.loads('[]', array_hook=tuple), ())
 
+    def test_load_array_hook(self):
+        # json.load must forward array_hook to loads
+        fp = StringIO('[10, 20, 30]')
+        result = self.json.load(fp, array_hook=tuple)
+        self.assertEqual(result, (10, 20, 30))
+        self.assertEqual(type(result), tuple)
+
     def test_decoder_optimizations(self):
         # Several optimizations were made that skip over calls to
         # the whitespace regex, so this test is designed to try and
diff --git 
a/Misc/NEWS.d/next/Library/2026-04-29-08-10-17.gh-issue-149056.jnaD4W.rst 
b/Misc/NEWS.d/next/Library/2026-04-29-08-10-17.gh-issue-149056.jnaD4W.rst
new file mode 100644
index 000000000000000..0026d02c8762570
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2026-04-29-08-10-17.gh-issue-149056.jnaD4W.rst
@@ -0,0 +1,2 @@
+Fix :func:`json.load` not forwarding the *array_hook* argument to
+:func:`json.loads`. Patch by Thomas Kowalski.

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to