在Python中的API请求中使用变量
我想知道如何在以下API调用中使用变量:在Python中的API请求中使用变量,python,api,variables,request,response,Python,Api,Variables,Request,Response,我想知道如何在以下API调用中使用变量: response=requests.get('https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/50,1,2019-11-18T22:05:45+00:00') 在本例中,我希望将纬度和经度的变量集成到for循环中,而不是随机值50和1。当我尝试时,这不起作用,并发生400错误。这是语法错误还是不可能?我阅读了整个API,没有任何迹象表明这是不可能的 [编辑]尝试的示例
response=requests.get('https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/50,1,2019-11-18T22:05:45+00:00')
在本例中,我希望将纬度和经度的变量集成到for循环中,而不是随机值50和1。当我尝试时,这不起作用,并发生400错误。这是语法错误还是不可能?我阅读了整个API,没有任何迹象表明这是不可能的
[编辑]尝试的示例:
for i in range(0,precision):
response=requests.get('https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/latitude[i],longitude[i],2019-11-18T22:05:45+00:00')
json_data = json.loads(response.text)
wind_speed[i]=json_data["currently"]["windSpeed"]
wind_dir[i]=json_data["currently"]["windBearing"]
在本例中,对于i=0,纬度[i]=51.4888,经度[i]=3.16657
下面是错误消息
File "C:/Users/ab79/Documents/GPX WEATHER/test.py", line 8, in <module>
print(json_data["currently"]["windSpeed"])
KeyError: 'currently'
文件“C:/Users/ab79/Documents/GPX WEATHER/test.py”,第8行,在
打印(json_数据[“当前”][“风速”])
KeyError:“当前”
我会这样做:
base_url = 'https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/{},{},2019-11-18T22:05:45+00:00'
url = base_url.format(latitude[i],longitude[i])
r = requests.get(url)
data = r.json()
url = f'https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/{latitude[i]},{longitude[i]},2019-11-18T22:05:45+00:00'
r = requests.get(url)
data = r.json()
您遇到了一个问题,因为您试图将变量直接注入url字符串。尝试使用.format()
(如上)或类似的格式:
base_url = 'https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/{},{},2019-11-18T22:05:45+00:00'
url = base_url.format(latitude[i],longitude[i])
r = requests.get(url)
data = r.json()
url = f'https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/{latitude[i]},{longitude[i]},2019-11-18T22:05:45+00:00'
r = requests.get(url)
data = r.json()
“但当我这么做的时候”——当你这么做的时候?你能给我们举一个你正在尝试的纵横坐标的例子吗?当然,我用f字串编辑了我的问题<代码>f'https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/{纬度[i]},{经度[i]},2019-11-18T22:05:45+00:00'不起作用:'(起作用了!谢谢:D@AntoineBerger您还应该阅读文档以了解发生了什么。谢谢,我会的