lehrkraefte:blc:informatik:glf4-23:socialmedia-data:start

This is an old revision of the document!


Datenschutz und Datenanalyse

Wenn möglich, exportieren Sie die Daten im JSON-Format. Das ist zwar «einfach so» nicht so schön anzuschauen wie eine HTML-Datei, dafür sind die Daten sehr einfach von einem Programm lesbar und bearbeitbar.

  • YouTube: «Account-Symbol» → Meine Daten auf Youtube (eigene Videos nicht exportieren, Format als JSON wählen)
  • Instagram: «Kopf» → Profil → Privatsphäre und Sicherheit. Format JSON wählen.
  • Twitter: More → Settings and Support → Settings and Privacy → Download an Archive of your Data
  • TikTok? Facebook? Snapchat?

Wichtig! Speichern Sie Ihre persönlichen Daten nicht auf C:\ofi, weil andere Benutzer diese Daten lesen könnten. Speichern Sie diese auf Ihrem Laufwerk H:\ oder auf einem USB-Stick.

Text-Dateien enthalten nur Text (als Folge von Buchstaben) aber keine Formatierung (wie z.B. Word-Dokumente). Beispiele dafür sind:

  • Python-Dateien (die werden erst in einem Editor farbig dargestellt)
  • HTML-Dateien (Aufbau von Webseiten, drücken Sie mal Ctrl-U, um den Seitenquelltext anzuzeigen)
  • CSV (Comma separated values). Durch Kommas (oder für deutsches Excel durch Strichpunkte) getrennte Werte, zeilenweise. Kann mit einer Tabellekalkulation gelesen und geschrieben werden.
  • Markup-Language (z.B. diese Seite wurde damit geschrieben, siehe Knopf «Seitenquelltext» rechts)
  • JSON (JavaScript Object Notation). Maschinenlesbares Datenformat, das auch Menschen lesen können.
  • Legen Sie ein Verzeichnis jsontest an, in dem Sie die beiden folgenden Dateien mini.json und einlesen.py speichern (Rechtsklick, Link speichern unter…)
mini.json
[
 {"name":"test",
  "inhalt": [5,42,23,4321]
 },
 {"name":"bla",
  "inhalt": [7,8,9]
 }
]
einlesen.py
import json
 
with open("mini.json") as f:
    mydata = json.load(f)
 
print('mydata[1]["name"] =', mydata[1]["name"])
print('mydata[0]["test"] =', mydata[0]["test"])

Die Datei mini.json wird vom Python-Programm einlesen.py eingelesen und in die Variable mydata gespeichert. Mit Hilfe vom Programm (oder durch «logisches Schlussfolgern») beantworten Sie folgende Fragen. Dafür soll der Python-Code auch entsprechend verändert und erweitert werden.

  • Welchen Wert hat mydata[1]["name"]
  • Welchen Wert hat mydata[0]["test"]
  • Welcher Code ergibt den Wert 42?
  • Was enthält mydata[1]["inhalt"]

    nach dem Befehl

    mydata[1]["inhalt"][2]=1234

Lösungen

Lösungen

  • "bla"

    Achtung! Arrays werden mit Null beginnend indiziert.

  • Fehler, das erste Object hat keinen Schlüssel "test"
  • mydata[0]["inhalt"][1]
  • [7,8,1234]
einlesen-loesung.py
import json
 
with open("mini.json") as f:
    mydata = json.load(f)
 
print('mydata[1]["name"] =', mydata[1]["name"])
# print('mydata[0]["test"] =', mydata[0]["test"])  # Produziert einen Fehler
print('mydata[0]["inhalt"][1] =', mydata[0]["inhalt"][1])
 
print("Vorher")
print(mydata[1]["inhalt"])
mydata[1]["inhalt"][2]=1234
 
print('Nachher mydata[1]["inhalt"]')
print(mydata[1]["inhalt"])

Wir werden die Daten erst einmal in einer Tabellenkalkulation (z.B. Excel) analysieren. Dazu müssen die Daten aber erst in ein Format konvertiert werden, das von Excel auch gelesen werden kann. Dazu verwenden wir einfach CSV-Dateien, die sind am einfachsten zu erzeugen.

  • Speichern Sie folgendes Python-Script im gleichen Verzeichnis wie Ihre YouTube-Daten: youtube-json-to-csv-convert.py
  • Falls Sie keine eigene YouTube-Daten (oder andere Daten im JSON-Format haben), können Sie folgende Daten verwenden: old-data.json.zip.
  • In der git-bash, navigieren Sie in das Verzeichnis, in dem die Datei watch-history.json liegt und führen Sie das Python-Script youtube-json-to-csv-convert.py aus.
  • Öffnen Sie die generierte CSV-Datei in Excel

Dazu gibt einen Screencast: Direktlink oder auf SharePoint.

Falls Sie keine eigenen Daten im CSV-Format haben, können Sie folgende Daten analysieren (Auszug meiner YouTube-Daten): old-data.csv.zip

Erzeugen Sie eine Pivot-Tabelle dieser Daten, aggregiert nach Wochentag und Stunde. Schauen Sie sich dazu folgendes Video:

Screencast: Direktlink und auf SharePoint.

  • Überprüfen Sie, ob Sonntag oder Montag der erste Wochentag in Excel ist (in LibreOffice ist Sonntag der Tag 1)
  • Filtern Sie die Daten nach Datum. Vergleichen Sie dazu z.B. den September (Schulbetrieb) mit Juli (Sommerferien).
  • lehrkraefte/blc/informatik/glf4-23/socialmedia-data/start.1677489581.txt.gz
  • Last modified: 2023/02/27 10:19
  • by Ivo Blöchliger