cgi.parse_qs()
を使用した後、結果(辞書)をクエリ文字列に戻す方法は? urllib.urlencode()
に似たものを探しています。
urllib.parse.
urlencode
(query、doseq = False、[...])マッピングオブジェクトまたはstrまたはbytesオブジェクトを含む可能性のある2要素タプルのシーケンスをパーセントエンコードされたASCIIテキスト文字列。
dict
はマッピングです。
urllib.urlencode
(query
[、doseq
])
変換オブジェクトマッピングオブジェクトまたは一連の2要素タプルを「パーセントエンコード」文字列に変換...一連のkey=value
'&'
文字で区切られたペア...
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
何かを探しているexactlyurllib.urlencode()
!
ただし、 parse_qs()
( parse_qsl()
と異なる)を呼び出す場合、辞書キーは一意のクエリ変数名と値です各名前の値のリストです。
この情報を urllib.urlencode()
に渡すには、これらのリストを「フラット化」する必要があります。以下に、タプルのリストを包括してそれを行う方法を示します。
query_pairs = [(k,v) for k,vlist in d.iteritems() for v in vlist]
urllib.urlencode(query_pairs)