8

如果要作为 html 表单数据提交,我想获取一个 python dict 对象并将其转换为等效的字符串。

字典看起来像这样:

{
   'v_1_name':'v_1_value'
  ,'v_2_name':'v_2_value'
}

我相信表单字符串应该是这样的:

v_1_name=v_1_value&v_2_name=v_2_value

有什么好方法可以做到这一点?

谢谢!

4

3 回答 3

12

试试urllib.parse.urlencode

>>> from urllib.parse import urlencode
>>> urlencode({'foo': 1, 'bar': 2})
'foo=1&bar=2'
于 2011-12-15T04:18:20.467 回答
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'
于 2011-12-15T04:16:28.127 回答
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'
于 2018-03-31T01:05:41.797 回答