Skip to content

Commit 114817f

Browse files
authored
Fix trailing whitespace when dumping dicts with indent
When dumping a dict with indent > 0, `dict_to_json` would insert extra trailing whitespace before the opening and closing newlines of the dict. Also, when dumping an empty dict, two newlines would be inserted. This commit fixes both of these issues.
1 parent fdd4f03 commit 114817f

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

json5/dumper.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,9 @@ def dump(self, obj: Any) -> Any:
8989
def dict_to_json(self, d: dict[Any, Any]) -> Any:
9090
self.env.write('{', indent=0)
9191
if self.env.indent:
92-
self.env.write('\n')
92+
self.env.write('\n', indent=0)
9393
self.env.indent_level += 1
94+
index = 0
9495
for index, (key, value) in enumerate(d.items(), start=1):
9596
if self.env.indent:
9697
self.env.write('')
@@ -107,7 +108,8 @@ def dict_to_json(self, d: dict[Any, Any]) -> Any:
107108

108109
if self.env.indent:
109110
self.env.indent_level -= 1
110-
self.env.write('\n')
111+
if index != 0:
112+
self.env.write('\n', indent=0)
111113
self.env.write('}')
112114
else:
113115
self.env.write('}', indent=0)

0 commit comments

Comments
 (0)