解决python3 requests post 报unicode问题

场景介绍:
服务端是python2开发的API
客户端是python3调用requests发送post请求

问题:服务端接到的提交数据,报unicode错误
客户端:

requests.post(url, data={"a":1, "b": {"c": 4}})  # 客户端是python2的时候,这种写法是不会报错的

服务器:

b = request.data.get('b')  # 没有报错
c = b.get('c')  # 报错了
AttributeError: 'unicode' object has no attribute 'get'

由上面看出,python3是把data里的所有内容都默认转成了unicode类型,所以服务端没能解析的了。

解决方法:

import json
requests.post(url, data=json.dumps({"a":1, "b": {"c": 4}}), ,headers={'Content-type': 'application/json'})

服务端就可以正确接收了。

你可能感兴趣的:(python)