一、json模塊中的dumps方法
請求接口時params肯定是dict類型的,就是這種{"A":"B"},因為需要傳json格式的參數到服務端,但是為了降低case的維護成本,參數不會進行寫死,一般會從數據庫中拿參數,在服務端有強校驗的情況下,格式不正確的參數就會報錯,比如說{“KEY”:{'A':B}}這里面value在沒有encoding前是dict類型,在請求對應接口時就會response['code']一直非0。
json模塊中的dumps方法可以很好的解決上面的問題
>>> import json
>>> a={'a':{'key1':1,'key2':(1,2),'key3':[1,2,3],4:"aa"}}
>>> b=json.dumps(a)
>>> print b
{"a": {"key3": [1, 2, 3], "key2": [1, 2], "key1": 1, "4": "aa"}}
首先b["a"]["key2"]的value的類型原來是元組類型經過encoding后變成list
其次b["a"][4]其中4的類型是int型的經過encoding后變成string類型
json.dumps()還增加了排序參數sort_keys (適用於python2,python3當然也有類似的用法)
>>> c=json.dumps(a,sort_keys=True)
>>> print c
{"a": {"4": "aa", "key1": 1, "key2": [1, 2], "key3": [1, 2, 3]}}
這個排序是按照字典的(a到Z)排序
json.dumps()有一個參數indent可以增加縮進方便查看
>>> d=json.dumps(a,sort_keys=True,indent=3)
>>> print d
{
"a": {
"4": "aa",
"key1": 1,
"key2": [
1,
2
],
"key3": [
1,
2,
3
]
}
}