diff --git a/Lib/json/encoder.py b/Lib/json/encoder.py index fb083ed61b..c044c3e2fc 100644 --- a/Lib/json/encoder.py +++ b/Lib/json/encoder.py @@ -323,10 +323,13 @@ def _make_iterencode(markers, _default, _encoder, _indent, _floatstr, else: chunks = _iterencode(value, _current_indent_level) yield from chunks - if newline_indent is not None: - _current_indent_level -= 1 - yield '\n' + _indent * _current_indent_level - yield ']' + if first: + yield '[]' + else: + if newline_indent is not None: + _current_indent_level -= 1 + yield '\n' + _indent * _current_indent_level + yield ']' if markers is not None: del markers[markerid]