我正在编写一个API请求,以查询OpenWeatherMap的API以获取天气数据。我正在使用city_id编号提交对世界上唯一地方的请求。成功的API查询如下所示:
r = requests.get('http://api.openweathermap.org/data/2.5/group?APPID=333de4e909a5ffe9bfa46f0f89cad105&id=4456703&units=imperial')
其中的关键部分是4456703,这是唯一的city_ID
我希望用户选择一些城市,然后再通过JSON文件查找city_ID,然后将city_ID提供给API请求。
我可以通过硬编码添加多个city_ID。我还可以将city_ID添加为变量。但是我不知道如果用户选择一个随机的城市(最多20个),如何将其插入API请求中。我试图通过类似...的多次迭代来添加列表和元组。
#assume the user already chose 3 cities, city_ids are below
city_ids = [763942, 539671, 334596]
r = requests.get(f'http://api.openweathermap.org/data/2.5/groupAPPID=333de4e909a5ffe9bfa46f0f89cad105&id={city_ids}&units=imperial')
也许列表不是正确的数据类型?
成功的代码看起来像...
r = requests.get(f'http://api.openweathermap.org/data/2.5/group?APPID=333de4e909a5ffe9bfa46f0f89cad105&id={city_id1},{city_id2},{city_id3}&units=imperial')
除了我之前说过的那样,用户可以选择3个城市或10个城市,以便部分必须动态更新。
答案 0 :(得分:1)
您可以使用一些字符串方法和列表推导将列表的所有变量附加到单个字符串,然后将其格式化为API字符串,如下所示:
2 3 7
-1
5 4
1 8
希望有帮助, 祝你好运