Я только что понял, что json.dumps()
добавляет пробелы в объекте JSON
например
{'duration': '02:55', 'name': 'flower', 'chg': 0}
Как удалить пробелы, чтобы сделать JSON более компактным и сохранить байты для отправки по HTTP?
Такие как:
{'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.dumpОтветы:
источник
indent=0
генерирует новые строки, аindent=None
(по умолчанию) нет в 2.7. Все четко изложено по адресу: docs.python.org/3/library/json.html#json.dumpujson
по умолчанию это дампы без пробелов, но, к сожалению, он не поддерживаетseparators
ключевое слово, поэтому не может добавить пробел обратно, если это необходимо. Это намного быстрее, хотя против встроенногоjson
!request.body
с тем,request.data
что люди могут найти это полезнымbytes(json.dumps(request.data, separators=(',', ':')), 'utf-8') == request.body
В некоторых случаях вы можете захотеть избавиться только от конечных пробелов . Вы можете использовать
Есть место после,
:
но не после,
.Это полезно для сравнения ваших файлов JSON (в управлении версиями, например
git diff
), где некоторые редакторы избавятся от конечного пробела, но python json.dump добавит его обратно.Примечание: это не совсем отвечает на вопрос сверху, но я пришел сюда, чтобы найти этот ответ специально. Я не думаю, что он заслуживает своего собственного контроля качества, поэтому я добавляю его сюда.
источник