我正在尝试用 python 模拟 get 请求。我有一个参数字典,正在使用 urllib.urlencode 对它们进行 urlencode
我注意到虽然字典的形式是:
{ "k1":"v1", "k2":"v2", "k3":"v3", .. }
在 urlencoding 之后,参数的顺序切换为:
/?k1=v1&k3=v3%k2=v2...
为什么会发生这种情况,我可以强制字典中的顺序保持不变吗?
最佳答案
正如您在评论中看到的那样,Python 字典是没有顺序的,但是 Python 中有一个 OrderedDict
可以用来实现您想要的结果:
from collections import OrderedDict
import urllib
urllib.urlencode(OrderedDict([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')]))
# Out: 'k1=v1&k2=v2&k3=v3'
关于 OrderedDIct 的更多信息
关于python - 使用 urllib 编码时保持 url 参数的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25107663/