使用cgi.parse_qs()
后,如何将结果(字典)转换回查询字符串?寻找类似urllib.urlencode()
的东西。如何将字典转换为Python中的查询字符串?
回答
也许您正在寻找这样的事情:
def dictToQuery(d):
query = ''
for key in d.keys():
query += str(key) + '=' + str(d[key]) + "&"
return query
它需要一个字典,并将其转换为查询字符串,就像用urlencode。它会在查询字符串中追加最后的“&”,但如果这是个问题,则修复了return query[:-1]
。
你遇到过'str.join()'吗? 'urllib.quote_plus()'怎么样? –
@garbados您的解决方案应该在简单的情况下工作。但是,在'urllib中看看'urlencode'。py'(它应该在你的Python安装中)看看为什么创建一个查询字符串有时候不像你的答案所暗示的那么简单(特别是需要引用某些在URL中无效的字符)。 @Ignacio还引用了两个函数来清理你的实现并使其正确。 –
啊,的确如此。抱歉的实施。要表明我应该更加小心地回答我从未面对过的问题。 – garbados
您正在寻找东西正好像urllib.urlencode()
!
然而,当你调用parse_qs()
(不同于parse_qsl()
),字典键是唯一的查询变量名和值是每个名称值的名单。
为了将此信息传递到urllib.urlencode()
,您必须“扁平化”这些列表。这里是你如何可以与一个元组列表comprehenshion做到这一点:
query_pairs = [(k,v) for k,vlist in d.iteritems() for v in vlist]
urllib.urlencode(query_pairs)
在python3,稍有不同:
from urllib.parse import urlencode
urlencode({'pram1': 'foo', 'param2': 'bar'})
输出:'pram1=foo¶m2=bar'
为python2和python3兼容性,试试这个:
try:
#python2
from urllib import urlencode
except ImportError:
#python3
from urllib.parse import urlencode
- 1. 将查询字符串转换为python字典中的requests.post
- 2. 将python字典转换为Solr查询字符串
- 3. Python将字符串转换为字典
- 4. 将python字典转换为字符串
- 5. 将字符串转换为字典python
- 6. 将字符串转换为python字典
- 7. 如何将此字符串转换为Python中的字典?
- 8. 如何:将字典转换为Python中的字符串?
- 9. 如何将字符串转换为Python中的字典?
- 10. 如何将字符串转换为Python 3中的字典。
- 11. 的Python 3 - 如何将字符串转换为字典
- 12. 如何将字符串转换为字典在python中转义特殊字符
- 13. 如何将字符串列表转换为查询字符串?
- 14. 将x-www-form-urlencoded查询字符串转换为字典
- 15. Python 2.6如何将此字符串转换为字典?
- 16. 将字典转换为字符串
- 17. 将JSON字符串转换为python中的字典
- 18. 将字符串转换为Python中的字典位置
- 19. Python烧瓶:如何将查询对象转换为字符串?
- 20. 如何将字符串转换为字典转为蟒蛇
- 21. 将字符串转换为linq查询
- 22. 将字符串转换为LINQ查询
- 23. 将字符串转换为linq查询
- 24. 在Python中将字符串转换为字典或列表?
- 25. 在Python中将字符串转换为字典值错误
- 26. 在Python中将多行字符串转换为字典
- 27. 如何将字典列表转换为Python字典字典
- 28. 如何将ASCII字符转换为Python中的字符串
- 29. 将字符串中的每个字符转换为字典键
- 30. 如何将csv转换为Python中字典的字典?
注意:['cgi.parse_qs()'已被弃用。使用urlparse.parse_qs()代替。](http://docs.python.org/library/cgi.html#cgi.parse_qs) – Johnsyweb
**另请参阅:** https://stackoverflow.com/questions/5607551/ how to urlencode-a-querystring-in-python – dreftymac