lehrkraefte:blc:informatik:social-media-export

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:social-media-export [2026/02/10 06:41] – [JSON-Dateien] Ivo Blöchligerlehrkraefte:blc:informatik:social-media-export [2026/02/10 10:55] (current) – [Andere Formate] Ivo Blöchliger
Line 6: Line 6:
 Dazu müssen erst mal die Daten eingelesen und in ein Format gebracht werden, womit gearbeitet werden kann. 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 ===== ===== JSON-Dateien =====
 +==== Kurz-Übersicht ====
 JSON-Dateien sind sehr gut maschinenlesbar und auch einfach zu produzieren. JSON kann verschiedene Datenstrukturen enthalten, u.a. 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''   * Zahlen: Ganzzahlen, Dezimalbrüche (mit Dezimalpunkt), z.B. ''42'', oder ''3.1415926''
Line 13: Line 14:
   * Listen (Arrays), zwischen ''['' und '']'', Einträge durch Kommas getrennt, z.B. ''<nowiki>[2,5,"Bla", [42,67],1]</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.     * Die Einträge selbst können beliebige JSON-Datenstrukturen sein.
-    * Die Einträge werden von 0 bis Anzahl-1 durchnummeriert (in den allermeisten Programmiersprachen). 
   * Objects (Dictionaries), zwischen ''{'' und ''}'', Schlüssel-Wert Paar durch Kommas getrennt, z.B. ''<nowiki>{"name":"Vreni", "alter":27, "pets":["dog", "cat", "rat"]}</nowiki>''   * 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 Schlüssel sind immer Strings zwischen doppelten Anführungszeichen, gefolgt von einem Doppelpunkt '':''
Line 19: Line 19:
   * Leerschläge, Tabs, Zeilenumbrüche werden ignoriert (ausser in Strings natürlich).   * Leerschläge, Tabs, Zeilenumbrüche werden ignoriert (ausser in Strings natürlich).
  
-Einlesen einer JSON-Datei in Python+==== Einlesen einer JSON-Datei in Python ====
 <code python> <code python>
 import json import json
  
-with open('name_meiner_datei_im_gleichen_verzeichnis.json') as f:+with open('name_meiner_datei_im_gleichen_verzeichnis.json', encoding="utf-8") as f:
     data = json.load(f)     data = json.load(f)
 </code> </code>
  
-Ausgabe in JSON-Datei+==== Ausgabe in JSON-Datei ====
 <code python> <code python>
 import json import json
Line 35: Line 35:
     # json.dump(data, f, indent=2)      # Indentierte Datei mit Zeilenumbrüchen     # json.dump(data, f, indent=2)      # Indentierte Datei mit Zeilenumbrüchen
 </code> </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).
  
  
Line 40: Line 86:
   * [[lehrkraefte:blc:informatik:glf4-23:socialmedia-data:analyze|Scripts Blc vom 2023]]   * [[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:ks:teaching:informatik-glf4-23-4fnp#code|Scripts Ks vom 2023]]
 +
 +
 +
  • lehrkraefte/blc/informatik/social-media-export.1770705664.txt.gz
  • Last modified: 2026/02/10 06:41
  • by Ivo Blöchliger