2012-11-29 71 views
0

我目前正在一個python客戶端與我正在開發的web服務交談。目前我遇到了一個問題,我的web服務期望得到一個非常特定的格式化請求,但是當我通過json發送我的請求時,它會添加額外的\,導致我的web服務出現故障。問題與json.dumps添加額外的\變量

這是問題的只是輸入一些代碼到Python這樣的例子:

>>> import json 
>>> body = {} 
>>> body['hosts'] = '["cso22"]' 
>>> print json.dumps(body) 
{"hosts": "[\"CSO22\"]"} 

因此,現在的身體[「主機」]等於「[‘CSO22’]」這等於「[\\」 CSO22 \\「]'這不是我的web服務期望的,所以它返回http錯誤400.有沒有辦法改變這種行爲,以便json.dumps將返回我需要它的值?

回答

4

卸下單引號周圍'["CSO22"]'創建一個數組:

body = {'hosts': ["CSO22"]} 
1

如果應該是含有1個元件,字符串"CSO22"列表,然後取出單引號。

>>> body = {'hosts': ["CSO22"]} 
>>> print json.dumps(body) 
{"hosts": ["CSO22"]}