Python json.dumps(<val>) to output minified json?

Question:

Is there any way to have python’s json.dumps(<val>) output in minified form? (i.e. get rid of extraneous spaces around commas, colons etc.)

Asked By: Jimmy Huch

||

Answers:

You should set the separators parameter:

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

From the docs:

If specified, separators should be an (item_separator, key_separator) tuple. The default is (', ', ': ') if indent is None and (',', ': ') otherwise. To get the most compact JSON representation, you should specify (',', ':') to eliminate whitespace.

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

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

Answered By: Eugene Soldatov

There’s also a ujson library that works much faster and minifies the JSON by default.
Its dumps equivalent doesn’t have the separators parameter and it lacks some more features like custom encoders/decoders, but I thought it might be worth to mention it here.

>>> ujson.dumps([1,2,3,{'4': 5, '6': 7}])
'[1,2,3,{"4":5,"6":7}]'
Answered By: Igor Hatarist
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.