0

私は値のリストを持っています:

md5 = ['1111', '3333', '44444', '555555', '56632423', '23423514', '2342352323']

それらをQuery Stringに連結したい:

'md5=1111&md5=3333&md5=44444&md5=555555&md5=56632423&md5=23423514&md5=2342352323'

それを行う最善の方法は何ですか?

4

3 に答える 3

13

クエリ文字列を作成しているので、そのために特別に設計された標準ライブラリの関数を使用することをお勧めします。

...いじくり回すよりも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 チャットルームの Jon Clements に感謝します)、辞書を urlencode とパラメータに渡すことができますdoseq=True:

urlencode({'md5': md5}, doseq=True)

...同じ結果が得られます。これについては、上記のリンク先のドキュメントで説明されています。

値要素自体はシーケンスにすることができます。その場合、オプションのパラメータdoseqがTrueに評価されると、キーの値シーケンスの各要素に対して、 でkey=value区切られた個々のペアが生成されます。'&'エンコードされた文字列内のパラメーターの順序は、シーケンス内のパラメーター タプルの順序と一致します。

于 2013-05-10T23:09:06.567 に答える
5
md5s = '&'.join('md5='+m for m in md5)

括弧内の部分はジェネレーター式で、元のリストの'md5='+mfor eachを提供します。m

関数はそのjoin式を取得し、それを 1 つの大きな文字列にリンクして、&各ペアの間に を挿入します。

于 2013-05-10T23:05:58.250 に答える
0

使用できますjoin()

md5=['1111','3333','44444','555555','56632423','23423514','2342352323']
print 'md5=' + '&md5='.join(md5)
于 2013-05-10T23:05:05.383 に答える