Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
3dd02d62
Commit
3dd02d62
authored
Apr 12, 2011
by
R David Murray
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#10019: Fix regression relative to 2.6: add newlines if indent=0
Patch by Amaury Forgeot d'Arc, updated by Sando Tosi.
parent
abdeeff3
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
23 additions
and
4 deletions
+23
-4
Doc/library/json.rst
Doc/library/json.rst
+3
-3
Lib/json/encoder.py
Lib/json/encoder.py
+1
-1
Lib/json/tests/test_indent.py
Lib/json/tests/test_indent.py
+16
-0
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Doc/library/json.rst
View file @
3dd02d62
...
...
@@ -135,9 +135,9 @@ Basic Usage
using the JavaScript equivalents (``NaN``, ``Infinity``, ``-Infinity``).
If *indent* is a non-negative integer, then JSON array elements and object
members will be pretty-printed with that indent level. An indent level of 0
will only insert newlines. ``None`` (the default) selects the most compact
representation.
members will be pretty-printed with that indent level. An indent level of 0
,
or negative, will only insert newlines. ``None`` (the default) selects the
most compact
representation.
If *separators* is an ``(item_separator, dict_separator)`` tuple, then it
will be used instead of the default ``(', ', ': ')`` separators. ``(',',
...
...
Lib/json/encoder.py
View file @
3dd02d62
...
...
@@ -233,7 +233,7 @@ class JSONEncoder(object):
if (_one_shot and c_make_encoder is not None
and
not self.indent
):
and
self.indent is None
):
_iterencode = c_make_encoder(
markers, self.default, _encoder, self.indent,
self.key_separator, self.item_separator, self.sort_keys,
...
...
Lib/json/tests/test_indent.py
View file @
3dd02d62
...
...
@@ -2,6 +2,7 @@ from unittest import TestCase
import
json
import
textwrap
from
io
import
StringIO
class
TestIndent
(
TestCase
):
def
test_indent
(
self
):
...
...
@@ -39,3 +40,18 @@ class TestIndent(TestCase):
self
.
assertEqual
(
h1
,
h
)
self
.
assertEqual
(
h2
,
h
)
self
.
assertEqual
(
d2
,
expect
)
def
test_indent0
(
self
):
h
=
{
3
:
1
}
def
check
(
indent
,
expected
):
d1
=
json
.
dumps
(
h
,
indent
=
indent
)
self
.
assertEqual
(
d1
,
expected
)
sio
=
StringIO
()
json
.
dump
(
h
,
sio
,
indent
=
indent
)
self
.
assertEqual
(
sio
.
getvalue
(),
expected
)
# indent=0 should emit newlines
check
(
0
,
'{
\
n
"3": 1
\
n
}'
)
# indent=None is more compact
check
(
None
,
'{"3": 1}'
)
Misc/NEWS
View file @
3dd02d62
...
...
@@ -51,6 +51,9 @@ Core and Builtins
Library
-------
- Issue #10019: Fixed regression in json module where an indent of 0 stopped
adding newlines and acted instead like 'None'.
- Issue #5162: Treat services like frozen executables to allow child spawning
from multiprocessing.forking on Windows.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment