lehrkraefte:blc:informatik:social-media-export

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 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 ", 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).
import json
 
with open('name_meiner_datei_im_gleichen_verzeichnis.json', encoding="utf-8") as f:
    data = json.load(f)
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

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]}")
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
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()}")

2026-02-06 15:12:18

zeit = "2026-02-06 15:12:18"
time = 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

  • lehrkraefte/blc/informatik/social-media-export.txt
  • Last modified: 2026/02/10 10:55
  • by Ivo Blöchliger