0

我目前正在开发一个 python 客户端来与我正在开发的 web 服务交谈。目前我遇到了一个问题,我的网络服务期待一个非常具体的格式化请求,但是当我通过 json.dumps 发送我的请求时,它添加了额外的 \ 导致我的网络服务失败。

这是一个问题的例子,只是在 python 中输入了一些代码:

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

所以现在不是 body['hosts'] 等于 '["CSO22"]' 它等于 '[\\"CSO22\\"]' 这不是我的网络服务所期望的,所以它返回 http 错误 400。有吗一种改变这种行为的方法,以便 json.dumps 将返回我需要的值?

4

2 回答 2

4

删除周围的单引号'["CSO22"]'以创建一个数组:

body = {'hosts': ["CSO22"]}
于 2012-11-29T00:40:26.230 回答
1

如果这应该是一个包含 1 个元素的列表,即 string "CSO22",则删除单引号。

>>> body = {'hosts': ["CSO22"]}
>>> print json.dumps(body)
{"hosts": ["CSO22"]}
于 2012-11-29T00:40:51.060 回答