从字典中取回字符串

时间:2013-02-24 09:26:19

标签: python query-string urlparse

我试图从查询字符串中删除某些项目,这样做的最佳方法是解析查询字符串,迭代并删除我不想要的特定键并将它们全部加回来。

在python指南之后,他们说使用的urlencode函数似乎无法正常工作。

收取以下代码,该代码只解析查询字符串,然后将其重新连接在一起。我把它设置为保持空值。

>>> f = 'name=John%20Doe&seq=123412412412&wer'
>>> q = urlparse.parse_qs(f, keep_blank_values=True)
>>> q
{'wer': [''], 'name': ['John Doe'], 'seq': ['123412412412']}
>>> urllib.urlencode(q)
'wer=%5B%27%27%5D&name=%5B%27John+Doe%27%5D&seq=%5B%27123412412412%27%5D'

我期待查询代码的结果与f字符串相同。

http://docs.python.org/2/library/urlparse.html#urlparse.parse_qs

Use the urllib.urlencode() function to convert such dictionaries into query strings.

所以我假设我必须遍历q变量并手动构建字符串,在字典的每个项目上调用urlencode?没有更好的方法......

使用python 2.7

由于

1 个答案:

答案 0 :(得分:1)

您应该将doseq参数用于urlencode,因为您的查询中有序列dict:

>>> urllib.urlencode(q, doseq=1)
'wer=&name=John+Doe&seq=123412412412'