我正在使用urllib.parse.urlencode生成url的参数字符串。该函数的输入是字典。调用urlencode
字典的问题在于输出不确定。即,结果字符串中参数的顺序不一致。不确定的行为urlencode
使得很难测试使用它的代码段。有确定性的等价物urlencode
吗?
我当前的解决方案是将字典转换为元组列表,对其进行排序,然后迭代排序后的列表并生成字符串。我问这样的功能是否已经存在。
urllib.parse.urlencode
不仅接受映射(字典),还接受由两个元素组成的元组的序列:
>>> import urllib.parse
>>> urllib.parse.urlencode([('a', 'b'), ('c', 'd')])
'a=b&c=d'
>>> urllib.parse.urlencode([('c', 'd'), ('a', 'b')])
'c=d&a=b'
如果相反,您只需要有序的映射,请collections.OrderedDict
改用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句