在使用 openweather.org api 用于温度和天气时显示键盘错误

while using openweather.org api using for temperature and weather it shows an keyerror

在我的语音助手项目中,我想设置一个预测。因此,我使用 openweather.org 中的 api 键,我的代码如下

import requests
from os import *

api_address = "https://api.openweathermap.org/data/2.5/weather?id=bfbe606c8d661478b8132b49eee8051a"
json_data = requests.get(api_address).json()
# json_data = json_data.json()

def temp():
    temperature = round(json_data['main']['temp']-273.1)
    return temperature

def des():
    description = json_data["weather"][0]["description"]
    return description

print(temp())
print(des()) 

但这里的问题是控制台显示关于 'keyerror':

的错误
line 9, in temp
    temperature = round(json_data['main']['temp']-273.1)

KeyError: 'main'

请给我建议任何可以让我摆脱这个问题的解决方案。

这里是 Open-Meteo 的创建者。您可以使用不需要 API 密钥的 Open-Meteo API:

import requests
from os import *

api_address = "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41&current_weather=true"
json_data = requests.get(api_address).json()

def temp():
    temperature = json_data['current_weather']['temperature']
    return temperature

def des():
    description = json_data["current_weather"]["weathercode"]
    return description

print(temp())
print(des()) 

输出:

12.4
2

请注意输入正确的纬度和经度以获取您所在位置的天气预报