python URL编码多个相同的变量

python URL编码多个相同的变量,python,urlencode,Python,Urlencode,我读过其他关于python(v2)URLENCDE的帖子,没有发现这个问题 如果我有多个变量,但所有变量都具有相同的名称,那么如何使用urlencode(如果这是正确的工具)?假设URL是: 如果我定义这一点: url = 'http://path.com/a?' query_args = {'var': 'earth', 'var': 'wind', 'var': 'fire'} encoded_args = urllib.urlenc

我读过其他关于python(v2)URLENCDE的帖子,没有发现这个问题

如果我有多个变量,但所有变量都具有相同的名称,那么如何使用urlencode(如果这是正确的工具)?假设URL是:

如果我定义这一点:

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”:

如何对所有变量进行编码?

将映射对象或两元素元组序列转换为“百分比编码”字符串

所以。。。像这样:

>>> import urllib
>>> urllib.urlencode([('var', 'earth'), ('var', 'wind')])
'var=earth&var=wind'
“问题”是您要传递到
urlencode
的字典只有一个键/值对:

>>> {'var': 'earth',
...  'var': 'wind',
...  'var': 'fire'}
{'var': 'fire'}
因为字典中只能有一个特定的键。允许urlencode接受一个2元素元组序列正是出于这个原因(对于查询参数顺序很重要的偶然URL而言)

将映射对象或两元素元组序列转换为“百分比编码”字符串

所以。。。像这样:

>>> import urllib
>>> urllib.urlencode([('var', 'earth'), ('var', 'wind')])
'var=earth&var=wind'
“问题”是您要传递到
urlencode
的字典只有一个键/值对:

>>> {'var': 'earth',
...  'var': 'wind',
...  'var': 'fire'}
{'var': 'fire'}

因为字典中只能有一个特定的键。允许urlencode接受一系列2元素元组正是出于这个原因(对于查询参数顺序很重要的不太可能的URL)

尝试打印
query\u args
。您需要后退几步,学习字典。在任何计算机编程语言中,你都必须先学习基础知识。试着打印
query\u args
。你需要后退几步,学习字典。在任何计算机编程语言中,你都必须先学习基础知识。谢谢。出于某种原因,我认为我读它只接受列表。我从未想到urlencode会接受字典。这很有道理,而且很有魅力。谢谢谢谢出于某种原因,我认为我读它只接受列表。我从未想到urlencode会接受字典。这很有道理,而且很有魅力。谢谢