Acabei de perceber que json.dumps()
adiciona espaços no objeto JSON
por exemplo
{'duration': '02:55', 'name': 'flower', 'chg': 0}
como remover os espaços para tornar o JSON mais compacto e salvar bytes a serem enviados via HTTP?
tal como:
{'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.dumpRespostas:
fonte
indent=0
gera novas linhas, enquantoindent=None
(padrão) não gera no 2.7. Tudo está claramente afirmado em: docs.python.org/3/library/json.html#json.dumpujson
o padrão é dumps sem espaço em branco, mas, infelizmente, ele não suportaseparators
palavras-chave, portanto, não é possível adicionar espaço se desejado. É muito mais rápido que vs embutidojson
!request.body
ao que asrequest.data
pessoas acham isso útilbytes(json.dumps(request.data, separators=(',', ':')), 'utf-8') == request.body
Em alguns casos, convém se livrar apenas dos espaços em branco à direita . Você pode então usar
Há um espaço depois,
:
mas não depois,
.Isso é útil para diferenciar seus arquivos JSON (em controle de versão como
git diff
), onde alguns editores se livram do espaço em branco à direita, mas o python json.dump o adiciona novamente.Nota: Isso não responde exatamente à pergunta no topo, mas eu vim aqui procurando essa resposta especificamente. Não acho que ele mereça seu próprio controle de qualidade, por isso estou adicionando aqui.
fonte