diff --git a/Lib/json/tests/test_decode.py b/Lib/json/tests/test_decode.py index 95088b45444..082159560d4 100644 --- a/Lib/json/tests/test_decode.py +++ b/Lib/json/tests/test_decode.py @@ -26,7 +26,8 @@ class TestDecode(TestCase): def test_empty_objects(self): self.assertEqual(json.loads('{}'), {}) self.assertEqual(json.loads('[]'), []) - self.assertEqual(json.loads('""'), "") + self.assertEqual(json.loads('""'), u"") + self.assertIsInstance(json.loads('""'), unicode) def test_object_pairs_hook(self): s = '{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}' diff --git a/Misc/NEWS b/Misc/NEWS index b14a6cb6278..743f10ac1b9 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -77,6 +77,8 @@ Core and Builtins Library ------- +- Issue #11982: fix json.loads('""') to return u'' rather than ''. + - Issue #11277: mmap.mmap() calls fcntl(fd, F_FULLFSYNC) on Mac OS X to get around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso. diff --git a/Modules/_json.c b/Modules/_json.c index 71d3e58297d..8d63edb2bf7 100644 --- a/Modules/_json.c +++ b/Modules/_json.c @@ -595,7 +595,7 @@ scanstring_str(PyObject *pystr, Py_ssize_t end, char *encoding, int strict, Py_s Py_DECREF(chunk); } - rval = join_list_string(chunks); + rval = join_list_unicode(chunks); if (rval == NULL) { goto bail; }