增强型表单数据序列化实用工具¶
- requests_toolbelt.utils.formdata.urlencode(query, *args, **kwargs)¶
处理嵌套表单数据查询并适当地对其进行序列化。
有时,网站希望发送嵌套表单数据查询,但标准库的 urlencode 函数无法适当地处理嵌套结构。在这种情况下,您需要此函数,它将首先使结构扁平化,然后为您正确对其进行编码。
在使用此函数发送请求正文中的数据时,请确保为请求指定适当的 Content-Type 标头。
import requests from requests_toolbelt.utils import formdata query = { 'my_dict': { 'foo': 'bar', 'biz': 'baz", }, 'a': 'b', } resp = requests.get(url, params=formdata.urlencode(query)) # or resp = requests.post( url, data=formdata.urlencode(query), headers={ 'Content-Type': 'application/x-www-form-urlencoded' }, )
同样,您可以指定嵌套元组列表,例如,
import requests from requests_toolbelt.utils import formdata query = [ ('my_list', [ ('foo', 'bar'), ('biz', 'baz'), ]), ('a', 'b'), ] resp = requests.get(url, params=formdata.urlencode(query)) # or resp = requests.post( url, data=formdata.urlencode(query), headers={ 'Content-Type': 'application/x-www-form-urlencoded' }, )
有关其他参数和返回信息,请参阅官方 urlencode 文档。