Помогите пожалуйста(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)