如何处理元组列表形式的查询参数?

Mar*_*cka 2 python string tuples list query-string

给定参数名称和值的元组列表,例如:

[("foo", 10), ("bar", None), ("baz", "some_string")]
Run Code Online (Sandbox Code Playgroud)

和一些 url 字符串,例如:

"/some/url/string"
Run Code Online (Sandbox Code Playgroud)

我的函数应该能够创建以下输出字符串(请注意,查询字符串中不包含 None 值元组):

"/some/url/string?foo=10&baz=some_string"
Run Code Online (Sandbox Code Playgroud)

我尝试使用 join 但由于值并非都是字符串,因此我必须首先转换它们。也许有人可以帮助我用一种简短而干净的方式来做到这一点。

DrT*_*rsa 5

>>> 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'
Run Code Online (Sandbox Code Playgroud)