Помогите пожалуйста(PYHTON + JSON)

мне выводится это

{"coord":{"lon":116.3972,"lat":39.9075},"weather":[{"id":800,"main":"Ясно","description":"ясное небо","icon ":"01d"}],"base":"stations","main":{"temp":10.94,"feels_like":8.48,"temp_min":10.94,"temp_max":10.94,"pressure":1013 ,"humidity":15,"sea_level":1013,"grnd_level":1007},"visibility":10000,"wind":{"speed":1,89,"deg":234,"gust":3,45}, "clouds":{"all":4},"dt":1709371712,"sys":{"type":1,"id":9609,"country":"CN","sunrise":1709333188," закат":1709374019},"часовой пояс":28800,"id":1816670,"name":"Пекин","cod":200}

и нужно добыть вот

"weather":[{"id":800,"main":"Ясно","description":"ясное небо","icon ":"01d"}]

это через питон библиотеку JSON. Если писать

res = requests.get(f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={API}&units=metric')
data = json.loads(res.text)
data["weather"]["description"]

то выводит ошибку: TypeError: list indices must be integers or slices, not str


Ответы (1 шт):

Автор решения: Ilnarildarovuch

При обращении к элементам списка в JSON объекте, необходимо указывать индекс элемента. В данном случае, "weather" это список, поэтому нужно указать индекс элемента списка.

Для получения значения "description" из списка "weather", можно использовать следующий код:

res = requests.get(f'https://api.openweathermap.org/data/2.5/weather?q={city}&appid={API}&units=metric')
data = json.loads(res.text)
weather = data["weather"][0]  # обращаемся к первому элементу списка "weather"
description = weather["description"]
print(description)
→ Ссылка