如何使用带参数的 request.get 而不是完整路径

问题描述 投票:0回答:2

我有一个页面,我想从中获取数据和示例请求调用,例如http://smepage.com?select="name","numer"&where=number="10"

为了获取数据,我使用 python 请求并且它有效:

URL=http://somepage.com?select="name","numer"&where=number="10"
requests.get(URL)

但是有没有可能使用dict或者其他一些容器来传递参数呢? 我尝试使用 json 但它没有用

params = {
"select":["name","numer"],
"where": {"number":"5"}
}
URL=http://somepage.com
requests.get(URL, json=params)
python request get
2个回答
0
投票

尝试在

params
调用中使用命名参数
requests.get
传递查询参数。

这段代码应该做你想做的事。

import requests


params = {"select": ["name", "numer"], "where": {"number": "5"}}
url = "http://somepage.com"
response = requests.get(url, params=params)
print(response.text)

0
投票

您有部分查询

?select="name","numer"
。这将传递一个值作为
select
参数,即字符串
'"name","numer"'
。然而,在您的
params
字典中,您有
select
参数
["name", "numer"]
,它将传递一个包含两个值的列表,就像您指定了
?select=name&select=numer
一样。所以不清楚你真正想要传递的是什么。但是如果我按照你原来的 URL,那么:

params = {"select": '"name","numer"', "where": 'number="10"'}
url = "http://somepage.com"
# params=params, not json=params:
response = requests.get(url, params=params)
print(response.text)

您需要为

params
指定一个字典,其键是参数名称,其值是字符串或字符串列表,然后将此字典作为
params
参数传递给get

© www.soinside.com 2019 - 2024. All rights reserved.