Właśnie zdałem sobie sprawę, że json.dumps()
dodaje spacje w obiekcie JSON
na przykład
{'duration': '02:55', 'name': 'flower', 'chg': 0}
jak można usunąć spacje, aby JSON był bardziej zwarty i zaoszczędzić bajty do wysłania przez HTTP?
Jak na przykład:
{'duration':'02:55','name':'flower','chg':0}
Changed in version 3.4: Use (',', ': ') as default if indent is not None.
problemOdpowiedzi:
źródło
indent=0
generuje znaki nowej linii, podczas gdyindent=None
(domyślnie) nie jest w wersji 2.7. Wszystko jest jasno określone pod adresem: docs.python.org/3/library/json.html#json.dumpujson
domyślnie jest to zrzuty bez białych znaków, ale niestety nie obsługujeseparators
słów kluczowych, więc nie można dodać spacji z powrotem, jeśli jest to pożądane. Jest o wiele szybszy niż wbudowanyjson
!request.body
z tym,request.data
aby ludzie mogli uznać to za przydatnebytes(json.dumps(request.data, separators=(',', ':')), 'utf-8') == request.body
W niektórych przypadkach możesz chcieć pozbyć się tylko końcowych białych znaków . Następnie możesz użyć
Jest spacja po,
:
ale nie po,
.Jest to przydatne do porównywania plików JSON (w kontroli wersji, takiej jak
git diff
), gdzie niektórzy redaktorzy pozbędą się końcowych białych znaków, ale python json.dump doda je z powrotem.Uwaga: to nie jest dokładną odpowiedzią na pytanie u góry, ale przyszedłem tutaj, szukając konkretnie tej odpowiedzi. Nie sądzę, że zasługuje na własną kontrolę jakości, więc dodam ją tutaj.
źródło