如何使用参数分割Python请求?

如何使用参数分割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

我需要有关如何在使用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%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

可能重复感谢,这是一个很好的参考,但我更喜欢使用
请求