2013-05-01 112 views
86

我刚刚意识到json.dumps()添加空格JSON对象的Python - JSON没有空格

例如

{'duration': '02:55', 'name': 'flower', 'chg': 0} 

如何删除空格为了使JSON更紧凑并节省通过HTTP发送的字节?

如:

{'duration':'02:55','name':'flower','chg':0} 
+1

Python 3.4修正了这个错误:'在3.4版本中进行了更改:如果indent不是None,则使用(',',':')作为默认值。“https://docs.python.org/3/library/json。 html#json.dump – grisaitis 2017-03-02 17:43:19

回答

139
json.dumps(separators=(',', ':')) 
+1

对json验证的doctests非常有用。 – andi 2015-12-18 09:29:33

+4

还要注意'indent = 0'生成换行符,而'indent = None'(默认)不在2.7中。所有内容都清楚地陈述在:https://docs.python.org/3/library/json.html#json.dump – 2016-07-28 14:01:16

21

在您可能需要某些情况下摆脱只有尾部空格的。 然后可以使用

json.dumps(separators=(',', ': ')) 

:后的空间,但不,后。

这对于区分JSON文件很有用(在版本控制中,例如git diff),其中一些编辑器将删除尾随的空白,但是python json.dump会将其添加回去。

注意:这并不完全回答上面的问题,但我特意来这里寻找这个答案。我认为它不值得拥有自己的QA,所以我在这里添加它。