requests如何在url中传递参数?
乙醇 创建于 almost 7 years 之前
最后更新: less than a minute 之前
阅读数: 151
我们经常需要在请求中加参数,比如一些分页信息,每页返回的资源数量等。
如果我们手工去构造这些参数的话,我们会在url后面接?
,然后传入key/value对,比如httpbin.org/get?key=val
。多个key/value对以&
分隔。
在Requests里,我们一般使用params
关键字参数的方式,传入dict来传递url参数。比如,假设我们想传递key1=value1
和key2=value2
这2个参数,我们可以用下面的代码
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get('http://httpbin.org/get', params=payload)
可以通过url方法来查看requests帮我们构造的编码后的url
>>> print(r.url)
http://httpbin.org/get?key2=value2&key1=value1
我们还可以为同一个key传递一组数据,比如
>>> 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