2

パラメータ名と値のタプルのリストが与えられた場合:

[("foo", 10), ("bar", None), ("baz", "some_string")]

いくつかの URL 文字列など:

"/some/url/string"

私の関数は、次の出力文字列を作成できるはずです (None 値のタプルはクエリ文字列に含まれていないことに注意してください)。

"/some/url/string?foo=10&baz=some_string"

join を使用してみましたが、値がすべて文字列ではないため、最初に変換する必要があります。多分誰かがこれを行うための短くてきれいな方法で私を助けることができます.

4

2 に答える 2

4
>>> from urllib import urlencode
>>> data = [("foo", 10), ("bar", None), ("baz", "some_string")]
>>> urlencode(data)
'foo=10&bar=None&baz=some_string'
>>> urlencode([x for x in data if x[1] is not None]) # no None's
'foo=10&baz=some_string'
于 2012-05-29T12:05:10.230 に答える
2

組み込みのurllibを使用してパラメーターをエンコードするだけです。

>>> import urllib
>>> parameters = [("foo", 10), ("bar", None), ("baz", "some_string")]
>>> clean_parameters = [parameter for parameter in parameters if parameter[1] is not None]
>>> urllib.urlencode(clean_parameters)
'foo=10&baz=some_string'
于 2012-05-29T12:05:48.270 に答える