gpt4 book ai didi

python - 如何拆分带有参数的Python请求?

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:21 24 4
gpt4 key购买 nike

我需要有关如何在使用 python 请求 get 时从 url 中拆分参数的帮助。

假设我有这个网址

https://blabla.io/bla1/blas/blaall/messages?data=%7B%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D

我通过

做了 requests.get
_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"})

我检查了_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)

_get.url 返回以下结果

u'https://blabla.io/bla1/blas/blaall/messages?data%5B%5D=limit_count&data%5B%5D=limit_size'

没有10010000

在这种url中 --> https://blabla.io/bla1/blas/blaall/messages?data=%7B%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D ,具体如何拆分其参数?

感谢您的帮助。

最佳答案

所以您正在寻找:

data={"limit_count":100,"limit_size":1000}

作为您的查询参数。

不幸的是,requests 不会展平这个嵌套结构,它将任何 Iterable 值视为键的多个值,例如你的 Nest 字典的处理方式如下:

query = {'data': ['limit_count', 'limit_size']}

这就是为什么您在最终结果中看不到 1001000 的原因。

您需要将其压平为字符串。您可以使用 json.dumps() 创建所需的字符串(双引号与单引号,紧凑)。然后 requests 将进行所需的 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'

关于python - 如何拆分带有参数的Python请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45071061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com