[PYTHON] So erhalten Sie die aktuellen Wetterdaten und zeigen sie auf der GUI an, während Sie sie automatisch aktualisieren

0. Zuerst

Wenn Sie sehen möchten, wie die Dinge, die Sie dieses Mal machen, funktionieren, lesen Sie bitte hier (Youtube-Video).

1. OpenWeatherMap-API-Einstellungen

Greifen Sie zuerst auf die OpenWeatherMap [hier] zu (https://openweathermap.org/). w1.png Wenn Sie sich dann anmelden, wird ein Bildschirm wie dieser angezeigt. Gehen Sie also zur API darüber. Polish_20200613_071205710.png Um die aktuellen Wetterdaten abzurufen, drücken Sie Abonnieren in Aktuelle Wetterdaten. Polish_20200613_070919098.png Drücken Sie dann Free's Get API Key. Polish_20200613_071312064.png Dann gelangen Sie zum ersten Bildschirm. Drücken Sie also die API-Tasten. Polish_20200613_071018224.png Dann können Sie den erhaltenen API-Schlüssel sehen. w6.png

2. Erfassung von Wetterdaten

get_weather_data.py


import requests
import json
import schedule

api_key = '8c5752202e9c558f8d76310d5d96ee03'
city_name = 'Tokyo'
url = f'http://api.openweathermap.org/data/2.5/weather?q={city_name}&appid={api_key}&lang=ja'
response = requests.get(url)

def show_data():
    response = requests.get(url)
    data = json.loads(response.text)
    print(data)

#data['weather'][0]['description']

Wenn Sie show_data () ausführen, erhalten Sie die folgenden Json-Daten. Sie können das Ergebnis auf Japanisch erhalten, indem Sie am Ende der URL lang = ja hinzufügen.

{'coord': {'lon': 139.69, 'lat': 35.69}, 'weather': [{'id': 500, 'main': 'Rain', 'description': 'leichter Regen', 'icon': '10d'}], 'base': 'stations', 'main': {'temp': 293.2, 'feels_like': 294.56, 'temp_min': 292.15, 'temp_max': 294.26, 'pressure': 1008, 'humidity': 93}, 'visibility': 7000, 'wind': {'speed': 2.6, 'deg': 80}, 'rain': {'1h': 0.64}, 'clouds': {'all': 75}, 'dt': 1589781754, 'sys': {'type': 1, 'id': 8077, 'country': 'JP', 'sunrise': 1589744047, 'sunset': 1589794888}, 'timezone': 32400, 'id': 1850144, 'name': 'Tokio', 'cod': 200}

3. Zeigen Sie die GUI-Einstellungen an

weather.py


import requests
import json
import datetime
import tkinter as tk

class Weather:
    def __init__(self,parent):
        self.api_key = '2d3e148162f779382b38d219e60e028e'
        self.city_name = 'Tokyo'
        self.url = f"http://api.openweathermap.org/data/2.5/weather?q={self.city_name}&appid={self.api_key}&lang=ja"

        self.label = tk.Label(parent,text="weather data")
        self.label2 = tk.Label(parent,text="updated time")
        self.label.pack()
        self.label2.pack()
        self.label.after(60000,self.change_info)
        self.label2.after(60000,self.change_info)


    def show_data(self):
        response = requests.get(self.url)
        data = json.loads(response.text)
        print(data['weather'][0]['description'],datetime.datetime.now())
        return data
    
    def change_info(self):
        time = datetime.datetime.now()
        data = self.show_data()
        var = data['weather'][0]['description']
        self.label.configure(text=var)
        self.label2.configure(text=time) 
        self.label.after(60000,self.change_info)
        self.label2.after(60000,self.change_info)
        

#if __name__ == '__main__':
#    root = tk.Tk()
#    weather = Weather(root)
#    root.mainloop()

run = True
while run:
    try:
        root = tk.Tk()
        weather = Weather(root)
        root.mainloop()
    except KeyboardInterrupt:
        run = False

Auch hier habe ich nichts besonders Schwieriges getan. Jede Minute wird change_info () aufgerufen, um die Daten abzurufen und das GUI-Label zu aktualisieren. Wenn Sie dies jedoch tun, wenn Sie es nach Abschluss nicht auskommentiert haben, endet es beim nächsten Update, sodass Sie es noch verbessern müssen. Wenn Sie wissen, wie Sie ein gutes Finish erzielen, lassen Sie es mich bitte wissen. Bitte.

Schließlich

Diese Methode wird auch in Youtube erklärt. Schauen Sie also bitte nach, wenn es Ihnen gefällt. Wenn Sie Fragen haben, verwenden Sie bitte den Kommentarbereich des Videos oder den Kommentarbereich dieses Artikels. Wenn es Ihnen gefällt, abonnieren Sie den Kanal.

Recommended Posts

So erhalten Sie die aktuellen Wetterdaten und zeigen sie auf der GUI an, während Sie sie automatisch aktualisieren
So geben Sie die im Django-Modell enthaltenen Daten im JSON-Format zurück und ordnen sie der Broschüre zu
[Persönliches Memo] Holen Sie sich Daten im Web und machen Sie daraus einen DataFrame
So installieren Sie Git GUI und Gitk unter CentOS
Ich habe versucht, die Uhrzeit und das heutige Wetter anzuzeigen
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
So erhalten Sie alle Schlüssel und Werte im Wörterbuch
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
So erhalten Sie den NTP-Servernamen per DHCP und legen ihn fest
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
Zeigen Sie das Bild der an den PC angeschlossenen Kamera auf der GUI an.
Wie einfach ist es, ein Medikament auf dem Markt zu synthetisieren?
So zeigen Sie PDF-Auflösung und detaillierte Informationen unter Linux an (pdfinfo)
So zeigen Sie Bytes in Java und Python auf die gleiche Weise an
Ich habe versucht, Sphinx-Dokumente an BitBucket zu senden und sie automatisch auf dem Webserver wiederzugeben
Laden Sie Daten mit einem Befehl und einer Aktualisierung auf s3 von aws hoch und löschen Sie die verwendeten Daten (unterwegs).
[Python Kivy] So erhalten Sie den Dateipfad durch Ziehen und Ablegen
[Python] So legen Sie die Position und Größe der Fensteranzeige von matplotlib fest
Teilen und Verarbeiten eines Datenrahmens mithilfe der Groupby-Funktion
So registrieren Sie nur eine Daten auf dem Django-Verwaltungsbildschirm
So zeigen Sie den Fortschrittsbalken an (tqdm)
[Rails] So berechnen Sie Breiten- und Längengrade mit hoher Genauigkeit mithilfe der Geocoding-API und zeigen sie auf Google Map an
So zeigen Sie Piktogramme unter Manjaro Linux an
So erhalten Sie eine farbige Ausgabe an die Konsole
So starten Sie das Python-Projekt im Jahr 2020 (Windows WSL und Mac Common)
So schalten Sie die Skalenwertanzeige aus, während Sie das Raster mit matplotlib verlassen
Hinweise zum Implementieren des Schlüssels unter Amazon S3 mit Boto 3, Implementierungsbeispiel, Hinweise
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
Ich bin süchtig nach dem Unterschied, wie Flask und Django JSON-Daten empfangen
Ich habe versucht, die Daten des Laptops durch Booten unter Ubuntu zu retten
So installieren Sie Fast.ai auf einer Alibaba Cloud-GPU und führen es auf einem Jupyter-Notebook aus
Der erste Schritt zur Protokollanalyse (Formatieren und Einfügen von Protokolldaten in Pandas)
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
[Python] So ändern Sie das Datumsformat (Anzeigeformat)
[Django] So erhalten Sie Daten durch Angabe von SQL.
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
So erhalten Sie Artikeldaten mithilfe der Qiita-API
So erhalten Sie die Dateien im Ordner [Python]
Datenbereinigung Umgang mit fehlenden und Ausreißern
So installieren Sie den Cascade-Detektor und wie verwenden Sie ihn
[Schienen] So zeigen Sie mehrere Markierungen auf Google Map an und zeigen beim Klicken eine Sprechblase an
[Blender] So ermitteln Sie die Auswahlreihenfolge von Scheitelpunkten, Seiten und Flächen eines Objekts
Ich habe versucht zu verstehen, wie Pandas und multiple Co-Linearität unter Verwendung des Affairs-Datensatzes als Thema verwendet werden.
Holen Sie sich den neuesten Termin aus Google Kalender und benachrichtigen Sie jeden Morgen online
So finden Sie heraus, welcher Prozess den localhost-Port verwendet, und stoppen ihn