使用 python 序列化时,通常使用 json.dumps()生成 json,但是会在key和value之间默认给你加上一个空格。传参时可能会应为这个空格导致服务端解析失败。
之前做接口测试时,就遇到这个问题,本来是服务端解析存在问题,无奈服务端童鞋不予更改。
解决方法如下:
a = {'user':'admin','password':'a123456'}
>>> print(json.dumps(a))
{"user": "admin", "password": "a123456"} #默认会多一个空格
如果想获得一个紧凑的json,应该指定消除空格。-> (item_separator, key_separator)
(', ', ': ')
(',', ':')
具体如下实现:
a = {'user':'admin','password':'a123456'}
>>> print(json.dumps(a,separators=(',',':')))
{"user":"admin","password":"a123456"}
=========================
官方例子:
>>> import json
>>> json.dumps([1, 2, 3, {'': 5, '': 7}], separators=(',', ':'))
'[1,2,3,{"4":5,"6":7}]'
参照 官网 例子。