如何使用参数分割Python请求?
我需要有关如何在使用python请求时从中的url拆分参数的帮助如何使用参数分割Python请求?,python,python-requests,Python,Python Requests,我需要有关如何在使用python请求时从中的url拆分参数的帮助get 假设我有这个url https://blabla.io/bla1/blas/blaall/messages?data=%7B%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D 我做了请求。通过 _get = requests.get("https://blabla.io/bla1/blas/blaall/messages?data=%7B%22limit_count%2
get
假设我有这个url
https://blabla.io/bla1/blas/blaall/messages?data=%7B%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D
我做了请求。通过
_get = requests.get("https://blabla.io/bla1/blas/blaall/messages?data=%7B%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D", headers={"Authorization":"MyToken 1234abcd"})
我检查了\u get.url
,它返回了
u'https://blabla.io/bla1/blas/blaall/messages?data=%7B%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D'
然后,我尝试使用以下方法拆分参数
url = "https://blabla.io/bla1/blas/blaall/messages"
query = {"data[]":[{"limit_count":100, "limit_size":100}]}
headers = {"Authorization":"MyToken 1234abcd"}
_get = requests.get(url, params=query, headers=headers)
\u get.url
返回以下结果
u'https://blabla.io/bla1/blas/blaall/messages?data%5B%5D=limit_count&data%5B%5D=limit_size'
无100
和10000
在这种url中-->https://blabla.io/bla1/blas/blaall/messages?data=%7B%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D
,如何准确拆分其参数
谢谢您的帮助。您正在寻找:
from urllib.parse import urlsplit, parse_qs
import requests
url = "https://blabla.io/bla1/blas/blaall/messages?data=%7B%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D"
query = urlsplit(url).query
params = parse_qs(query)
headers = {"Authorization":"MyToken 1234abcd"}
_get = requests.get(url, params=params, headers=headers)
data={"limit_count":100,"limit_size":1000}
作为您的查询参数
不幸的是,请求
不会展平此嵌套结构,它会将任何Iterable
值视为键的多个值,例如,您的嵌套字典被视为:
query = {'data': ['limit_count', 'limit_size']}
这就是为什么在最终结果中看不到100
和1000
你需要把它压扁成一根绳子。您可以使用json.dumps()
创建所需的字符串(双引号与单引号,压缩)。然后,请求
将执行所需的URL编码,例如:
In []:
data = {'limit_count': 100, 'limit_size': 1000}
query = {'data': json.dumps(data, separators=(',', ':'))}
request.get('http://httpbin.org', params=query).url
Out[]:
'http://httpbin.org/?data=%7B%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D'
据我所知,您不能使用请求
库解析URL
您可以使用它来处理请求。如果需要URL解析器,请改用urllib.parse
可能重复感谢,这是一个很好的参考,但我更喜欢使用请求
库