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

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:glf4-23:socialmedia-data:start [2023/02/22 11:56]
Ivo Blöchliger [Text-Dateien]
lehrkraefte:blc:informatik:glf4-23:socialmedia-data:start [2024/02/25 22:43] (current)
Olaf Schnürer
Line 1: Line 1:
 +~~NOTOC~~
 ====== Datenschutz und Datenanalyse ====== ====== Datenschutz und Datenanalyse ======
 +===== Datenexport =====
 +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?
 +
 +<WRAP center round important 60%>
 +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.
 +</WRAP>
 +
 +Wenn der Download zu gross ist, passen Sie den Download-Ordern im Browser wie folgt an:
 +  * «Drei Punkte Menu oben rechts»
 +  * Einstellungen
 +  * Downloads
 +  * Ort: Anpassen auf Ihren Stick (oder c:\ofi\downloads, den Ordner am Schluss aber wieder löschen).
 +===== Linux, OpenSource und was ist überhaupt ein Betriebssystem =====
 +  * [[.:exkurs-opensource|Exkurs]]
 ===== Datenformate ===== ===== Datenformate =====
 +
 ==== Text-Dateien ==== ==== Text-Dateien ====
-Text-Dateien enthalten nur Text (als Folge von Buchstaben) aber keine Formatierung. Beispiele dafür sind:+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)   * 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)   * HTML-Dateien (Aufbau von Webseiten, drücken Sie mal Ctrl-U, um den Seitenquelltext anzuzeigen)
-  * [[https://de.wikipedia.org/wiki/CSV_(Dateiformat)|CSV (Comma separated values)]]. Durch Kommas (oder für deutsches Excel durch Strichpunkte) getrennte Werte, zeilenweise. Kann mit einer Tabellekalkulation gelesen und geschrieben werden+  * [[https://de.wikipedia.org/wiki/CSV_(Dateiformat)|CSV (Comma separated values)]]. Durch Kommas (oder für deutsches Excel durch Strichpunkte) getrennte Werte, zeilenweise. Kann mit einer Tabellenkalkulationssoftware gelesen und geschrieben werden.
-  * [[https://de.wikipedia.org/wiki/JavaScript_Object_Notation|JSON (JavaScript Object Notation)]]. Maschinenlesbares Datenformat, das auch Menschen lesen können.+
   * Markup-Language (z.B. diese Seite wurde damit geschrieben, siehe Knopf «Seitenquelltext» rechts)   * Markup-Language (z.B. diese Seite wurde damit geschrieben, siehe Knopf «Seitenquelltext» rechts)
 +  * [[https://de.wikipedia.org/wiki/JavaScript_Object_Notation|JSON (JavaScript Object Notation)]]. Maschinenlesbares Datenformat, das auch Menschen lesen können.
  
  
 <WRAP todo> <WRAP todo>
-Gegeben ist folgende JSON-Datei: +  * Legen Sie ein Verzeichnis ''jsontest'' an, in dem Sie die beiden folgenden Dateien ''mini.json'' und ''einlesen.py'' speichern (**Rechtsklick, Link speichern unter...**) 
-<code json>+ 
 +<code json mini.json>
 [ [
  {"name":"test",  {"name":"test",
-  "inhalt": [42,23,4321]+  "inhalt": [5,42,23,4321]
  },  },
  {"name":"bla",  {"name":"bla",
Line 23: Line 44:
 ] ]
 </code> </code>
-Die Datei wird in Python als JSON eingelesen und in die Variable ''mydata'' gespeichert. +<code python einlesen.py
-  * Welchen Wert hat <HTML>mydata[1]["name"]</HTML>? +import json
-  * Welchen Wert hat <HTML>mydata[0]["test"]</HTML>? +
-  * Welcher Code ergibt den Wert 42?+
  
-<hidden Lösungen> +with open("mini.json") as f: 
-  * <HTML>"test"</HTML> +    mydata = json.load(f)
-  * Fehler, das erste Object hat keinen Schlüssel <HTML>"test"</HTML> +
-  * <HTML>mydata[0]["inhalt"][0]</HTML> +
-</hidden> +
-</WRAP>+
  
-===== Datenexport ===== +print('mydata[1]["name"=', mydata[1]["name"]) 
-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.+# oder (fast) dasselbe etwas kürzer mit sogenannten f-strings (formatted strings): 
 +print(f'{mydata[1]["name"]=}') 
 +print('mydata[0]["test"=', mydata[0]["test"]) 
 +</code>
  
-  * **YouTube**: <<Account-Symbol>> -> Meine Daten auf Youtube (eigene Videos nicht exportieren, Format als JSON wählen) +Die Datei ''mini.json'' wird vom Python-Programm ''einlesen.py'' eingelesen und in die Variable ''mydata'' gespeichert. 
-  * **Instagram**: <<Kopf>> -> Profil -> Privatsphäre und SicherheitFormat JSON wählen. +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.
-  * **Twitter**: More -> Settings and Support -> Settings and Privacy -> Download an Archive of your Data +
-  * TikTok? Facebook? Snapchat?+
  
-===== Datenanalyse ===== +  * Welchen Wert hat <HTML>mydata[1]["name"]</HTML> 
-Wir werden die Daten vor allem 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. +  * Welchen Wert hat <HTML>mydata[0]["test"]</HTML> 
 +  * Welcher Code ergibt den Wert 42? 
 +  * Was enthält <HTML>mydata[1]["inhalt"]</HTML> nach dem Befehl <HTML>mydata[1]["inhalt"][2]=1234</HTML>
  
-==== Konvertierung ====+<hidden Lösungen> 
 +  * <HTML>"bla"</HTML>Achtung! Arrays werden mit Null beginnend indiziert. 
 +  * Fehler, das erste Object hat keinen Schlüssel <HTML>"test"</HTML> 
 +  * <HTML>mydata[0]["inhalt"][1]</HTML> 
 +  * <HTML>[7,8,1234]</HTML>
  
-<WRAP todo>+<code python einlesen-loesung.py> 
 +import json
  
-  * Speichern Sie folgendes Python-Script im gleichen Verzeichnis wie Ihre YouTube-Daten{{lehrkraefte:blc:informatik:glf4-23:socialmedia-data:youtube-json-to-csv-convert.py}} +with open("mini.json") as f: 
-  * In der git-bash, navigieren Sie in das Verzeichnis, in dem die Datei ''watch-history.csv'' und führen Sie das Python-Script aus. +    mydata = json.load(f)
-  * Öffnen Sie die generierte CSV-Datei in Excel+
  
-<WRAP center round tip 60%> +print('mydata[1]["name"=', mydata[1]["name"]) 
-Dazu gibt einen Screencast: [[https://fginfo.ksbg.ch/~ivo/videos/informatik/vierte-klasse-2023/04-youtube-json-to-csv.mp4|Direktlink]] oder auf [[https://bldsg-my.sharepoint.com/:v:/g/personal/ivo_bloechliger_ksbg_ch/Edoi9blJy7pEp5UvqddapyUBSdxhVJpqF53z85KbUryigw?e=QWf7Q1|SharePoint]]. +# print('mydata[0]["test"=', mydata[0]["test"])  # Produziert einen Fehler 
-</WRAP>+print('mydata[0]["inhalt"][1] =', mydata[0]["inhalt"][1])
  
-</WRAP>+print("Vorher"
 +print(mydata[1]["inhalt"]) 
 +mydata[1]["inhalt"][2]=1234
  
-==== Analyse ==== +print('Nachher mydata[1]["inhalt"]') 
-<WRAP todo> +print(mydata[1]["inhalt"]
-Falls Sie keine eigenen Daten im CSV-Format haben, können Sie folgende Daten analysieren (Auszug meiner YouTube-Daten): {{lehrkraefte:blc:informatik:glf4-23:socialmedia-data:old-data.csv.zip}} +</code
- +</hidden>
-Erzeugen Sie eine Pivot-Tabelle dieser Daten, aggregiert nach Wochentag und Stunde. Schauen Sie sich dazu folgendes Video: +
- +
-<WRAP center round tip 60%+
-Screencast: [[https://fginfo.ksbg.ch/~ivo/videos/informatik/vierte-klasse-2023/05-youtube-csv-excel-pivot-tabelle.mp4|Direktlink]] und auf [[https://bldsg-my.sharepoint.com/:v:/g/personal/ivo_bloechliger_ksbg_ch/EfigS1P1v-RAlZlbh4tTRaEB1WUV9FEnpy5EuoBcinjLrg?e=OHVCcj|SharePoint]].+
 </WRAP> </WRAP>
- 
- 
-  * Ü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). 
- 
-</WRAP> 
- 
  
  
  
  
  • lehrkraefte/blc/informatik/glf4-23/socialmedia-data/start.1677063393.txt.gz
  • Last modified: 2023/02/22 11:56
  • by Ivo Blöchliger