Me acabo de dar cuenta de que json.dumps()
agrega espacios en el objeto JSON
p.ej
{'duration': '02:55', 'name': 'flower', 'chg': 0}
¿Cómo puede eliminar los espacios para hacer que el JSON sea más compacto y guardar los bytes que se enviarán a través de HTTP?
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.dumpRespuestas:
fuente
indent=0
genera nuevas líneas, mientras queindent=None
(por defecto) no lo hace en 2.7. Todo se indica claramente en: docs.python.org/3/library/json.html#json.dumpujson
el valor predeterminado es volcados sin espacios en blanco, pero lamentablemente no admiteseparators
palabras clave, por lo que no puede volver a agregar espacio si lo desea. Sin embargo, es mucho más rápido que integradojson
.request.body
con elrequest.data
para que la gente pueda encontrar esto útilbytes(json.dumps(request.data, separators=(',', ':')), 'utf-8') == request.body
En algunos casos, es posible que desee deshacerse de los espacios en blanco finales solamente. Entonces puedes usar
Hay un espacio después
:
pero no después,
.Esto es útil para diferenciar sus archivos JSON (en el control de versiones como
git diff
), donde algunos editores eliminarán el espacio en blanco al final pero python json.dump lo agregará nuevamente.Nota: Esto no responde exactamente la pregunta en la parte superior, pero vine aquí buscando esta respuesta específicamente. No creo que merezca su propio control de calidad, así que lo estoy agregando aquí.
fuente