python使用urllib.parse.urlencode处理data,和postman中处理结果不一样,搜了好久都没找到解决方法




是方法不对吗?

你是想发起接口请求的吗?

是的,postman可以,python这样编码不行,区别就这里

postman发送请求成功后,可以转成python代码,你可以对比一下哪里不同

就是这个编码这里不同,postman里面生成的代码已经是对数据编码后的了,如图;自己手写python需要对数据进行url编码,但是编出来的和postman生成的不同,然后postman发送消息ok;自己通过urlencode处理过的数据的就不行了

麻烦你贴一下原始字符串,postman转出来的字符串,我本地测试一下看看

原因是:使用postman decode出来的是一个json,使用python提供的函数urlencode 在decode出来的不是一个json格式的,带了一个+号,查了一下urlencode函数处理多维嵌套字典对象存在问题,bug至今还没有修复,查到一个解决办法,就是自己编写函数转换成一维对象,这样就没啥问题了。参考: 将Python的嵌套字典变成一维,以便urlencode_LeoHsiao的博客-CSDN博客

好的,我也试下