2012-11-29 43 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"]}