gh-131884: Fix incorrect formatting in json.dumps() when using indent… · python/cpython@ec12559 · GitHub
Skip to content

Commit ec12559

Browse files
authored
gh-131884: Fix incorrect formatting in json.dumps() when using indent and skipkeys=True (GH-132200)
1 parent 485b499 commit ec12559

4 files changed

Lines changed: 20 additions & 7 deletions

File tree

Lib/json/encoder.py

Lines changed: 3 additions & 2 deletions

Lib/test/test_json/test_dump.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ def test_dump_skipkeys(self):
2222
self.assertIn('valid_key', o)
2323
self.assertNotIn(b'invalid_key', o)
2424

25+
def test_dump_skipkeys_indent_empty(self):
26+
v = {b'invalid_key': False}
27+
self.assertEqual(self.json.dumps(v, skipkeys=True, indent=4), '{}')
28+
29+
def test_skipkeys_indent(self):
30+
v = {b'invalid_key': False, 'valid_key': True}
31+
self.assertEqual(self.json.dumps(v, skipkeys=True, indent=4), '{\n "valid_key": true\n}')
32+
2533
def test_encode_truefalse(self):
2634
self.assertEqual(self.dumps(
2735
{True: False, False: True}, sort_keys=True),
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix formatting issues in :func:`json.dump` when both *indent* and *skipkeys* are used.

Modules/_json.c

Lines changed: 8 additions & 5 deletions

0 commit comments

Comments
 (0)