我有值列表:如何將字符串列表轉換爲查詢字符串?
md5 = ['1111', '3333', '44444', '555555', '56632423', '23423514', '2342352323']
我想將它們串聯成一個Query String:
'md5=1111&md5=3333&md5=44444&md5=555555&md5=56632423&md5=23423514&md5=2342352323'
什麼是做到這一點的最好方法是什麼?
我有值列表:如何將字符串列表轉換爲查詢字符串?
md5 = ['1111', '3333', '44444', '555555', '56632423', '23423514', '2342352323']
我想將它們串聯成一個Query String:
'md5=1111&md5=3333&md5=44444&md5=555555&md5=56632423&md5=23423514&md5=2342352323'
什麼是做到這一點的最好方法是什麼?
您可以使用join()
:
md5=['1111','3333','44444','555555','56632423','23423514','2342352323']
print 'md5=' + '&md5='.join(md5)
這並沒有給他他要求的輸出。 – abarnert 2013-05-10 23:05:18
我需要在每個索引之間添加並標記 – 2013-05-10 23:06:08
@abarnert:我已經更新了我的答案。 – 2013-05-10 23:06:39
md5s = '&'.join('md5='+m for m in md5)
的部分括號內是一個生成器表達式,它給你'md5='+m
在原始列表中的每個m
。
join
函數採用該表達式並將其鏈接成一個大字符串,並在每對之間放置一個&
。
既然你正在構建一個查詢字符串,最好是使用函數從專門設計用於這樣做的標準庫:
urllib.parse.urlencode()
(在Python 3)urllib.urlencode()
(在Python 2 )......比起來用str.join()
弄得一團糟。這裏是你如何使用它:
from urllib.parse import urlencode # Python 3
# from urllib import urlencode # Python 2
md5 = ['1111', '3333', '44444', '555555', '56632423', '23423514', '2342352323']
urlencode([("md5", x) for x in md5])
結果:
'md5=1111&md5=3333&md5=44444&md5=555555&md5=56632423&md5=23423514&md5=2342352323'
或者(感謝喬恩·克萊門茨在Python chatroom),你可以通過字典來urlencode和參數doseq=True
:
urlencode({'md5': md5}, doseq=True)
...產生相同結果。這是上面鏈接的文檔中說明:
本身的值元素可以是一個序列,並且在這種情況下,如果該可選參數doseq是評估爲真,從個人
key=value
對通過'&'
分離是爲密鑰的值序列的每個元素生成。編碼字符串中參數的順序將與序列中參數元組的順序相匹配。
是的,如果他構建了一個查詢字符串(很可能),這絕對是最好的方法。您可能希望在Python 3.x中添加「urllib.parse.urlencode」而不是「urllib.urlencode」。 – abarnert 2013-05-10 23:12:00
@abarnert完成:-) – 2013-05-10 23:12:28
您可能首先想嘗試查看一些相關問題,例如[this one](http://stackoverflow.com/questions/4481724/convert-a-list-of-characters-into-一個字符串)。 :) – summea 2013-05-10 23:04:48
未來,您應該提供更高級別的信息。你在建立一個查詢字符串以在URL中使用嗎?如果是這樣,告訴我們,然後給我們一個例子,而不是從最底層開始。請參閱[什麼是XY問題?](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)爲什麼你通常會以這種方式獲得更好的答案(儘管這一次,你很幸運,零比雷埃夫斯爲你猜測)。 – abarnert 2013-05-10 23:13:52
重新打開,因爲這不是鏈接問題的重複,如@ZeroPiraeus所示。 – davidism 2014-06-20 19:13:19