假设 data 如下 data={
a = '11',
b = '22',
c = 某个变量,
d = 另一个变量,
e = '33'
} 然后我 requests.post 理论来说 他 data 的顺序应该是 a=11&b=22.....依次按顺序,但是我测试抓包发现,他顺序是乱的,特别是变量,他可能会封装成 a=11&c=某个变量&d=另一个变量值&b=22..... 我想让他就按照从上往下的顺序进行封装起来,百度了下也没人问这类的问题,请问有解吗?
|      1ThirdFlame      2021-08-20 20:08:54 +08:00 一般不关心这个顺序, 因为 http 服务器那边也不是按照顺序解析的。 你要是非得控制这个顺序,就不要用 requests 了。 可以自行实现。 | 
|  |      2Trim21      2021-08-20 20:09:57 +08:00 升级到 python3.6 以上 | 
|  |      3surbomfla      2021-08-20 20:10:05 +08:00 via Android 接收方能正确接收到就行了 | 
|  |      4Building      2021-08-20 20:10:55 +08:00 via iPhone 用数组,或者排序。 | 
|      5zhuzhuaini OP @Trim21 已经 3.8 了 没用 | 
|      6zhuzhuaini OP @Building 请教一下想稍微具体点 不是很明白 谢谢! | 
|      7zhuzhuaini OP @ThirdFlame  @surbomfla 目前碰到个网页,比如我要上传 2 段文字,他的逻辑是先来一个 base64 文本 1 然后来一个“TXT[0]”再来个 base64 文本 2,然后再来个"TXT[1]",如果顺序不对的话他就没法识别两段文字了(因为顺序变成了 base1,base2,txt0,txt1 ) | 
|  |      8ysc3839      2021-08-20 20:16:14 +08:00 via Android 尝试传 OrderedDict 进去? | 
|  |      9Trim21      2021-08-20 20:19:21 +08:00 你传的这个 data 是 built-in 的 dict 类型吗? requests 内部调用的是 data.items(),我试了一下是有序的啊 r = requests.post("https://httpbin.org/post", data=data) print(type(r.request.body), r.request.body) | 
|  |      10ysc3839      2021-08-20 20:19:32 +08:00 via Android 或者尝试传 [('key1', 'val1'), ('key2', 'val2')] 这样的数据进去。 | 
|      11zhuzhuaini OP | 
|      12zhuzhuaini OP @zhuzhuaini 抱歉各位,我似乎知道问题出在哪了 他的打他(data)实际上是这样的 | 
|  |      13Trim21      2021-08-20 20:34:12 +08:00 @zhuzhuaini #11 按照 10 楼说的那样传 list 进去 | 
|      14skinny      2021-08-20 20:39:00 +08:00 没办法复现…… | 
|      15zhuzhuaini OP | 
|      16securityCoding      2021-08-21 15:26:41 +08:00 via Android 不用按顺序解啊,本身就有 k v 映射 | 
|  |      17RRRoger      2021-08-21 15:52:45 +08:00 requests 的 data 和 json 两个参数的区别 楼主是不是有点模糊 data: A dictionary, list of tuples, bytes or a file object to send to the specified url json: A JSON object to send to the specified url |