params={
'key1': 'value1',
'key2': ['value_a','value_b']
}
这就是我开始的,但它无法处理列表。
str_params = ''
for key, value in params.items():
print (key,value)
str_params += '&' + key + '=' + value
我正在尝试产生这个字符串。
str_params = '&key1=value1&key2=value_a&key2=value_b'
迭代字典只会生成键。如果你想产生键,值对,使用items()
方法(iteritems
在Python 2.x中(。
使用 urllib.parse.urlencode
(在 Python 2.x 中urllib.urlencode
(:
>>> import urllib.parse
>>> urllib.parse.urlencode([
... (key, x) for key, xs in params.items()
... for x in ([xs] if isinstance(xs, str) else xs)
... ])
'key2=value_a&key2=value_b&key1=value1'
您可以使用手动字符串操作器,但需要格外小心应%xx
编码的特殊字符。
你需要使用 items()
来访问字典中的键和值:
>>> for i,j in params.items():
... str_params+= '&' +i+'='+str(j)