This is an old revision of the document!
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.
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, oder3.1415926 - Strings (Zeichenketten) zwischen doppelten Anführungszeichen
", z.B."Hallo". - Listen (Arrays), zwischen
[und], Einträge durch Kommas getrennt, z.B.[2,5,"Bla", [42,67],1]- Die Einträge selbst können beliebige JSON-Datenstrukturen sein.
- Objects (Dictionaries), zwischen
{und}, Schlüssel-Wert Paar durch Kommas getrennt, z.B.{"name":"Vreni", "alter":27, "pets":["dog", "cat", "rat"]}- 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
import json with open('name_meiner_datei_im_gleichen_verzeichnis.json', encoding="utf-8") as f: data = json.load(f)
Ausgabe in JSON-Datei
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
Zugriff auf die Daten in Python
Wir betrachten als Beispiel folgenden JSON Eintrag
{"name":"Vreni", "alter":27, "pets":["dog", "cat", "rat"]}
# Daten in der Variable data eingelesen print(f"Name ist {data["name"]}) print(f"Zweites pet ist {data["pets"][1]}")
Datenstrukturen anlegen
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
Umgang mit Datum/Zeit-Angaben
Dokumentation https://docs.python.org/3/library/datetime.html
Datum/Zeit in ISO-Format
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()}")
Andere Formate
2026-02-06 15:12:18
zeit = "2026-02-06 15:12:18" datetime.strptime(zeit, "%Y-%m-%d %H:%M:%S")
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 datetime.strptime umwandeln.
Beispielcodes und -Daten
- Siehe in diesem One-Drive Ordner. Legen Sie hier auch Ihre Scripts ab (mit bezeichnendem Dateinamen).