python-Request[传递 URL 参数]
2018年2月20日你也许经常想为 URL 的查询字符串(query string)传递某种数据。如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的后面。例如, httpbin.org/get?key=val
。 Requests 允许你使用 params
关键字参数,以一个字符串字典来提供这些参数。举例来说,如果你想传递 key1=value1
和 key2=value2
到 httpbin.org/get
,那么你可以使用如下代码:
1 2 |
>>> payload = {'key1': 'value1', 'key2': 'value2'} >>> r = requests.get("http://httpbin.org/get", params=payload) |
通过打印输出该 URL,你能看到 URL 已被正确编码:
1 2 |
>>> print(r.url) http://httpbin.org/get?key2=value2&key1=value1 |
注意字典里值为 None
的键都不会被添加到 URL 的查询字符串里。
你还可以将一个列表作为值传入:
1 2 3 4 5 |
>>> payload = {'key1': 'value1', 'key2': ['value2', 'value3']} >>> r = requests.get('http://httpbin.org/get', params=payload) >>> print(r.url) http://httpbin.org/get?key1=value1&key2=value2&key2=value3 |