Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Social Media Meta-Daten ====== Ziel: Graphen erstellen, die die Anzahl Zugriffe in der Zeit aufzeigen, z.B. * Zugriffe pro Tag (für jeden Tag), damit sollten Schulferien sichtbar werden. * Zugriffe pro Stunde und Wochentag (damit sollten Stundenpläne/Trainingspläne o.ä. sichtbar werden). Dazu müssen erst mal die Daten eingelesen und in ein Format gebracht werden, womit gearbeitet werden kann. {{lehrkraefte:blc:informatik:yt-watch-history.svg?300}} ===== JSON-Dateien ===== ==== Kurz-Übersicht ==== JSON-Dateien sind sehr gut maschinenlesbar und auch einfach zu produzieren. JSON kann verschiedene Datenstrukturen enthalten, u.a. * Zahlen: Ganzzahlen, Dezimalbrüche (mit Dezimalpunkt), z.B. ''42'', oder ''3.1415926'' * Strings (Zeichenketten) zwischen doppelten Anführungszeichen ''<nowiki>"</nowiki>'', z.B. ''<nowiki>"Hallo"</nowiki>''. * Listen (Arrays), zwischen ''['' und '']'', Einträge durch Kommas getrennt, z.B. ''<nowiki>[2,5,"Bla", [42,67],1]</nowiki>'' * Die Einträge selbst können beliebige JSON-Datenstrukturen sein. * Objects (Dictionaries), zwischen ''{'' und ''}'', Schlüssel-Wert Paar durch Kommas getrennt, z.B. ''<nowiki>{"name":"Vreni", "alter":27, "pets":["dog", "cat", "rat"]}</nowiki>'' * Die Schlüssel sind immer Strings zwischen doppelten Anführungszeichen, gefolgt von einem Doppelpunkt '':'' * Die Werte sind beliebige JSON-Datenstrukturen. * Leerschläge, Tabs, Zeilenumbrüche werden ignoriert (ausser in Strings natürlich). ==== Einlesen einer JSON-Datei in Python ==== <code python> import json with open('name_meiner_datei_im_gleichen_verzeichnis.json', encoding="utf-8") as f: data = json.load(f) </code> ==== Ausgabe in JSON-Datei ==== <code python> import json with open('datei_wird_ueberschrieben.json', 'w') as f: json.dump(data, f) # Kompakte Datei # json.dump(data, f, indent=2) # Indentierte Datei mit Zeilenumbrüchen </code> ==== Zugriff auf die Daten in Python ==== Wir betrachten als Beispiel folgenden JSON Eintrag ''<nowiki>{"name":"Vreni", "alter":27, "pets":["dog", "cat", "rat"]}</nowiki>'' <code python> # Daten in der Variable data eingelesen print(f"Name ist {data["name"]}) print(f"Zweites pet ist {data["pets"][1]}") </code> ==== Datenstrukturen anlegen ==== <code python> data = {} # Leerer dictionary (JSON Object) data["name"] = "Vreni" # Oder obige zwei Zeilen in einer: data = {"name":"Vreni"} data["pets"] = ["dog", "cat"] data["pets"].append("rat") # Liste vergrössern data["alter"] = 3**3 </code> ===== Umgang mit Datum/Zeit-Angaben ===== Dokumentation https://docs.python.org/3/library/datetime.html ==== Datum/Zeit in ISO-Format ==== <code python> from datetime import datetime zeit = datetime.fromisoformat("2026-02-03T13:55:38.223Z") print(zeit) print(f" hour={zeit.hour} weekday={zeit.weekday()} timestamp={zeit.timestamp()}") </code> ==== Andere Formate ==== ''2026-02-06 15:12:18'' <code python> zeit = "2026-02-06 15:12:18" time = datetime.strptime(zeit, "%Y-%m-%d %H:%M:%S") </code> Instagramm liefert einen Timestamp. Versuchen Sie ''datetime.fromtimestamp(ts)'' Eventuell gibt es für das vorliegende Format bereits einen Parser, sonst Format selbst beschreiben und mit [[https://docs.python.org/3/library/datetime.html#datetime.datetime.strptime|datetime.strptime]] umwandeln. ====== Beispielcodes und -Daten ====== * [[https://bldsg-my.sharepoint.com/:f:/g/personal/ivo_bloechliger_ksbg_ch/IgDxVQONflH2RKaNwrpyaWY3AQPGWz18Ba9TdV1FD8JzrCU?email=4DNP%40ksbg.ch&e=nQ7JcN|Siehe in diesem One-Drive Ordner]]. Legen Sie hier auch Ihre Scripts ab (mit bezeichnendem Dateinamen). ===== Alte Seiten mit Konvertierungsprogrammen ===== * [[lehrkraefte:blc:informatik:glf4-23:socialmedia-data:analyze|Scripts Blc vom 2023]] * [[lehrkraefte:ks:teaching:informatik-glf4-23-4fnp#code|Scripts Ks vom 2023]] lehrkraefte/blc/informatik/social-media-export.txt Last modified: 2026/02/10 10:55by Ivo Blöchliger