Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中的API请求中使用变量_Python_Api_Variables_Request_Response - Fatal编程技术网

在Python中的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,没有任何迹象表明这是不可能的 [编辑]尝试的示例

我想知道如何在以下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您还应该阅读文档以了解发生了什么。谢谢,我会的