KeyError: «Main» в ответе API OpenWeatherMap с GUI Tkinter - Как безопасно извлечь данные о погоде?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 KeyError: «Main» в ответе API OpenWeatherMap с GUI Tkinter - Как безопасно извлечь данные о погоде?

Сообщение Anonymous »

Я строю простое применение погоды, используя Tkinter Python для GUI и API OpenWeatherMAP для получения данных о погоде. Приложение включает в себя строку поиска для ввода имени города и кнопку отправки, чтобы получить информацию о погоде. Однако, когда я пытаюсь получить доступ к ключу «основной» в ответе JSON, я сталкиваюсь с KeeError: Main .
import tkinter as tk
import requests
from tkinter import messagebox

def get_weather():
city_name = city_entry.get()
api_key = 'your_api_key_here'
url = f"http://api.openweathermap.org/data/2.5/ ... d={api_key}"

try:
response = requests.get(url)
data = response.json()
print(data) # Debugging line to inspect the response

# Attempting to access 'main' key
temperature = data['main']['temp']
humidity = data['main']['humidity']
print(f"Temperature: {temperature}°C, Humidity: {humidity}%")

except KeyError as e:
messagebox.showerror("Data Error", f"Missing key in response: {e}")
except requests.exceptions.RequestException as e:
messagebox.showerror("Request Error", f"An error occurred: {e}")

# Tkinter GUI setup
root = tk.Tk()
root.title("Weather App")

city_entry = tk.Entry(root)
city_entry.pack()

submit_button = tk.Button(root, text="Get Weather", command=get_weather)
submit_button.pack()

root.mainloop()
< /code>
Проблема: < /strong>
Когда я ввожу имя города, и нажимаю кнопку отправки, я получаю следующую ошибку: < /p>
KeyError: 'main'
< /code>
После проверки словаря данных я заметил, что иногда отсутствует ключ «основной». Похоже, что это происходит, когда имя города сформулировано или не существует. Любые улучшения, которые я могу сделать в обработке своей ошибки, чтобы обеспечить лучший пользовательский опыт в случае неверных имен города или проблем с API? /> Я использую Python 3.8 и Tkinter 8.6. < /li>
< /ul>
Любое руководство или предложения будут высоко оценены! < /p>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -to-safely
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Невозможно получить температуру с помощью API openweathermap в tkinter
    Anonymous » » в форуме Python
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Не получая никаких данных от API API OpenWeatherMAP API
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • ПРОБЛЕМЫ ПРЕДУПРЕЖДЕНИЯ GUI PYTHON GUI
    Anonymous » » в форуме Python
    0 Ответы
    90 Просмотры
    Последнее сообщение Anonymous
  • Данные о погоде служб определения местоположения для дат первых и последних заморозков
    Anonymous » » в форуме Php
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Как интегрировать данные о погоде с производительностью драйвера F1 в Python?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»