Ich habe gerade festgestellt, dass json.dumps()
Leerzeichen im JSON-Objekt hinzugefügt werden
z.B
{'duration': '02:55', 'name': 'flower', 'chg': 0}
Wie können Leerzeichen entfernt werden, um den JSON kompakter zu gestalten und Bytes zu speichern, die über HTTP gesendet werden sollen?
sowie:
{'duration':'02:55','name':'flower','chg':0}
Changed in version 3.4: Use (',', ': ') as default if indent is not None.
docs.python.org/3/library/json.html#json.dumpAntworten:
quelle
indent=0
Zeilenumbrüche generiert werden, währendindent=None
(Standard) dies in 2.7 nicht tut. Alles ist klar angegeben unter: docs.python.org/3/library/json.html#json.dumpujson
Standardmäßig werden Dumps ohne Leerzeichen verwendet, aber leider wird dasseparators
Schlüsselwort nicht unterstützt, sodass auf Wunsch kein Speicherplatz mehr hinzugefügt werden kann. Es ist viel schneller als eingebautjson
!request.body
mit dem zu vergleichen ,request.data
damit die Leute dies nützlich findenbytes(json.dumps(request.data, separators=(',', ':')), 'utf-8') == request.body
In einigen Fällen möchten Sie möglicherweise nur die nachfolgenden Leerzeichen entfernen . Sie können dann verwenden
Es gibt ein Leerzeichen danach,
:
aber nicht danach,
.Dies ist nützlich, um Ihre JSON-Dateien zu unterscheiden (z. B. in der Versionskontrolle
git diff
), wobei einige Editoren das nachfolgende Leerzeichen entfernen, Python json.dump es jedoch wieder hinzufügt.Hinweis: Dies beantwortet die obige Frage nicht genau, aber ich bin hierher gekommen, um diese Antwort speziell zu suchen. Ich denke nicht, dass es eine eigene Qualitätssicherung verdient, also füge ich es hier hinzu.
quelle