目标系统貌似用 JAVA 开发了一个接口,需要我这边用 Python POST 过去一个 jsonArray 格式数据过去。
data = [ { "test0":"0", "test1":"1" }, { "test3":"3", "test4":"4" } ] data_json = json.dumps(data)
这样 POST 过去后,提示不是 jsonArray 格式。 然后又简单变换了下,仍然不可以,求各位指导一下。
![]() | 1 virusdefender 2016-04-08 00:06:10 +08:00 via Android 我觉得这样没错,最好让那边给个 demo |
![]() | 2 ethego 2016-04-08 00:07:13 +08:00 为什么不是?我在 chrome 的 console 里试了, dump 出来就是 array |
3 pierre1994 OP @virusdefender 谢谢大神,明天再去咨询下 |
4 pierre1994 OP @ethego 我也觉得很奇怪 |
![]() | 5 zonghua 2016-04-08 00:36:40 +08:00 via iPhone 是不是被转义了?刚才把 json 放到 url 参数上发现逗号转移成了\054 |
![]() | 6 coolair 2016-04-08 02:06:40 +08:00 via Android type(data_json)看下 |
![]() | 7 janxin 2016-04-08 07:41:12 +08:00 via iPhone content-type 设置了吗 |
9 pierre1994 OP @zonghua 有可能 |
10 pierre1994 OP @janxin 设置了 |
11 pierre1994 OP @gimp 有道理 |
12 BOYPT 2016-04-08 09:37:45 +08:00 对方可能是不 parse post body 的,直接取内容。 |
13 lovepython 2016-04-08 09:44:16 +08:00 完全没看出错,求大神指点 |
14 WangYanjie 2016-04-08 09:47:57 +08:00 你通过什么 post 过去的,注意 content_type 。 本质上你发过去的都是字符串, http 怎么理解要看你怎么说明 |
15 pierre1994 OP @WangYanjie 加了 content 了 |
16 peter999 2016-04-08 13:31:41 +08:00 没有问题,把你 post 的代码发下 |
![]() | 17 fzinfz 2016-04-08 13:40:12 +08:00 不同程序交互貌似不带‘ s ’的 json.dump()比较合适 |
18 pierre1994 OP @peter999 headers = {'content-type': 'application/json'} r = requests.post(url, data= data_json, headers=headers ) print r.text 然后结果是:[{"desc":"input format error,must be JSONArray","state":"error"}] |
19 pierre1994 OP @coolair 额,是<type 'str'>哎 |
20 peter999 2016-04-10 21:24:55 +08:00 去掉 headers ,改成: r = requests.post(url, data=data_json) |