これを行うとき、私はリクエストlibとpython 2.7を使用しています:
import requests
uri_params = {
u'email': u'myEmail@domain.com',
u'id_user': 15,
u'user_var': {
u'var1': u'val1',
u'var2': u'val2',
}
}
r = requests.get('http://google.com/', params=uri_params)
print r.url
結果として私に与えます: http://www.google.com/?id_user=15&email=myEmail%40domain.com&user_var=var1&user_var=var2
http://www.google.com/?id_user=15&email=myEmail%40domain.com&user_var%5Bvar1%5D=val1&user_var%5Bvar2%5D=val2 (= user_var[var1]=val1&user_var[var2]=val2)の代わりに
これを処理する方法として lib を要求するかどうか知っていますか?
編集: Martijn Pieters のコードの使用方法を理解するのに数分かかりました。だから、私のようなPythonに慣れていない他の人のための最終的なコードは次のとおりです。
import requests
import urllib
def nested_object(name, mapping):
return [(u'{}[{}]'.format(name, key), value) for key, value in mapping.iteritems()]
uri_params = [
(u'email', u'myEmail@domain.com'),
(u'id_user', 15),
]
uri_params.extend(nested_object(u'user_var', {u'var1': u'val1', u'var2': u'val2'}))
encoded = urllib.urlencode(uri_params)
r = requests.get('http://google.com/', params=encoded)
print r.url