使用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