gpt4 book ai didi

python-2.7 - 如何为 API 数据的 requests.get 命令传递日期参数?

转载 作者:行者123 更新时间:2023-12-05 03:06:13 25 4
gpt4 key购买 nike

我正在尝试从 API 源获取过去的天气数据。但是,我遇到了有关如何传递日期参数和指定我尝试获取数据的日期的问题。我已成功使用 curl GET 命令,但未能成功将其转换为 requests.get 命令。

这是有效的:

curl -X GET -G "http://url.com/lat/long" -d start="2018-04-01" -d end="2018-04-04" --user abcd:1234

使用 subprocess 命令我已经得到了代码的工作。这是下面的代码:

cmd = 'curl -X GET -G "http://url.com/lat/long" -d start="2018-04-01"  -d end="2018-04-04" --user abcd:1234'

p = sp.Popen(cmd, shell=True,stdout=sp.PIPE, stderr=sp.STDOUT).stdout.read()

p.split('\n')[3]

这是我的 requests.get 代码:

r=requests.get("https://url.com/lat/long",auth=HTTPBasicAuth('user','password'))

但是,无法传递日期参数以将我的数据提取限制在我指定的日期范围内。

这是我尝试过的几种方法。

r=requests.get("https://url.com/lat/long",start=start,end=end,auth=HTTPBasicAuth('user','password'))

还试过:

data = [
('startDate', '2018-04-01'),
('endDate', '2018-04-08'),
]

r=requests.get("https://url.com/lat/long",data=data,auth=HTTPBasicAuth('user','password'))

有人可以指导我正确的方向吗?我真的很想坚持使用 request library 命令,但现在唯一有效的是通过 subprocess 方法运行 curl 命令,我不完全理解该过程。

最佳答案

让我们看一下 curl 命令中的 G 参数:

-G, --get           Put the post data in the URL and use GET

这意味着你的数据不会在请求的正文中提交,而是作为查询字符串在url中提交。通过 requests,您可以使用 params实现这一目标的论据。

因此您的 curl 命令等同于:

import requests

url = 'https://url.com/lat/long'
data = {'start': '2018-04-01', 'end': '2018-04-08'}
creds = ('user','password')
r = requests.get(url, params=data, auth=creds)

print(r.text)

关于python-2.7 - 如何为 API 数据的 requests.get 命令传递日期参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49739827/

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