将python dict转换为与Content-Type兼容的字符串:“application / x-www-form-urlencoded”

时间:2011-12-15 04:07:51

标签: python formencode

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

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

这样做的好方法是什么?

谢谢!

3 个答案:

答案 0 :(得分:4)

尝试urllib.parse.urlencode

>>> from urllib.parse import urlencode
>>> urlencode({'foo': 1, 'bar': 2})
'foo=1&bar=2'

答案 1 :(得分:1)

简单地迭代项目,加入键和值,并创建一个由'='分隔的键/值对,最后通过'&'

加入对

对于Ex ......

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'

答案 2 :(得分:1)

对于Python 2.7,您将遇到此错误:

if (this.state.loginOpen) { showLoginModal(); }

改为使用urllib.urlencode

resource "google_project_iam_custom_role" "my-instance-role" {
  role_id     = "myInstanceRole"
  title       = "My Instance Role"
  description = "my custom iam role"
  permissions = [
    "storage.objects.create", 
    "cloudkms.cryptoKeyVersions.useToEncrypt"
  ]
}

<强>输出

>>> from urllib.parse import urlencode
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named parse