我已经阅读了有关python(v2)urlencode的其他帖子,但没有找到这个问题。
如果我有多个变量但是所有变量都具有相同名称,我如何利用urlencode(如果这是正确的工具)?所以说URL是:
http://path.com/a?var=earth&var=wind&var=fire
如果我定义这个:
url = 'http://path.com/a?'
query_args = {'var': 'earth',
'var': 'wind',
'var': 'fire'}
encoded_args = urllib.urlencode(query_args, doseq=True)
print url + encoded_args
似乎urlencode只返回最后定义的'var':
如何获得所有var的编码?
答案 0 :(得分:1)
来自docs
将映射对象或 一系列双元素元组 转换为“百分比编码”字符串......
所以......就像这样:
>>> import urllib
>>> urllib.urlencode([('var', 'earth'), ('var', 'wind')])
'var=earth&var=wind'
“问题”是您传递给urlencode
的字典只有一个键/值对:
>>> {'var': 'earth',
... 'var': 'wind',
... 'var': 'fire'}
{'var': 'fire'}
因为字典只能在其中包含一个特定的键。允许urlencode接受一系列2元素元组正是出于这个原因(对于查询参数的 order 重要的场外网址)