将Python字典转换为兼容Content-Type:"application/x-www-form-urlencoded"的字符串
我想把一个Python的字典对象转换成一个字符串,这个字符串如果提交为HTML表单数据的话应该是什么样的。
这个字典看起来是这样的:
{
'v_1_name':'v_1_value'
,'v_2_name':'v_2_value'
}
我认为表单字符串应该像这样:
v_1_name=v_1_value&v_2_name=v_2_value
有什么好的方法可以做到这一点吗?
谢谢!
3 个回答
2
在使用Python 2.7的时候,你可能会遇到这个错误:
>>> from urllib.parse import urlencode
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named parse
可以使用 urllib.urlencode 来解决这个问题。
from urllib import urlencode
d = {'v_1_name': 'v_1_value', 'v_2_name': 'v_2_value'}
print urlencode(d)
输出结果
'v_2_name=v_2_value&v_1_name=v_1_value'
2
简单来说,就是遍历这些项目,把每个项目的键和值连接起来,形成一个用'='分隔的键值对,最后用'&'把所有的键值对连接起来。
例如...
If d={'v_1_name':'v_1_value','v_2_name':'v_2_value','v_3_name':'v_3_value'}
然后
'&'.join('='.join([k,v]) for k,v in d.iteritems())
就是
'v_2_name=v_2_value&v_1_name=v_1_value&v_3_name=v_3_value'
19
试试这个 urllib.parse.urlencode:
>>> from urllib.parse import urlencode
>>> urlencode({'foo': 1, 'bar': 2})
'foo=1&bar=2'