在 Python 中的 API 请求中使用变量
Using variable in an API request in Python
我想知道如何在下面的 API 调用中使用变量:
response=requests.get('https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/50,1,2019-11-18T22:05:45+00:00')
在此示例中,我不想使用随机值 50 和 1,而是将我的纬度和经度变量集成到 for 循环中。当我尝试这不起作用时,会发生 400 错误。是语法错误还是不可能?我阅读了这篇 API 的整个 documentation,没有任何迹象表明这是不可能的。
[编辑]尝试示例:
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,latitude[i]=51.4888 和 longitude[i]=-3.16657
这是错误信息
File "C:/Users/ab79/Documents/GPX WEATHER/test.py", line 8, in <module>
print(json_data["currently"]["windSpeed"])
KeyError: 'currently'
我会这样做:
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 字符串。尝试使用 .format()
(上图)或像这样的 f-string:
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()
我想知道如何在下面的 API 调用中使用变量:
response=requests.get('https://api.darksky.net/forecast/f3bc3bd870812cc013666f2bfb75b45d/50,1,2019-11-18T22:05:45+00:00')
在此示例中,我不想使用随机值 50 和 1,而是将我的纬度和经度变量集成到 for 循环中。当我尝试这不起作用时,会发生 400 错误。是语法错误还是不可能?我阅读了这篇 API 的整个 documentation,没有任何迹象表明这是不可能的。
[编辑]尝试示例:
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,latitude[i]=51.4888 和 longitude[i]=-3.16657
这是错误信息
File "C:/Users/ab79/Documents/GPX WEATHER/test.py", line 8, in <module>
print(json_data["currently"]["windSpeed"])
KeyError: 'currently'
我会这样做:
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 字符串。尝试使用 .format()
(上图)或像这样的 f-string:
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()