web-dev-qa-db-fra.com

Python json.dumps (<val>) pour sortir json minifié?

Existe-t-il un moyen d'avoir la sortie json.dumps(<val>) de python sous forme minifiée? (c.-à-d. se débarrasser des espaces étrangers autour des virgules, des deux-points, etc.)

29
Jimmy Huch

Vous devez définir le paramètre separators:

>>> json.dumps([1, 2, 3, {'4': 5, '6': 7}], separators=(',', ':'))
'[1,2,3,{"4":5,"6":7}]'

De la documentation:

Si spécifié, les séparateurs doivent être un (item_separator, key_separator) Tuple. La valeur par défaut est (', ', ': ') si le retrait est None et (',', ': ') autrement. Pour obtenir la représentation JSON la plus compacte, vous devez spécifier (',', ':') pour éliminer les espaces.

https://docs.python.org/3/library/json.html

https://docs.python.org/2/library/json.html

46
Eugene Soldatov

Il existe également une bibliothèque json qui fonctionne beaucoup plus rapidement et réduit le JSON par défaut.
Son équivalent dumps n'a pas le paramètre separators et il lui manque quelques fonctionnalités comme les encodeurs/décodeurs personnalisés, mais j'ai pensé qu'il valait la peine de le mentionner ici.

>>> ujson.dumps([1,2,3,{'4': 5, '6': 7}])
'[1,2,3,{"4":5,"6":7}]'
3
000