~~NOTOC~~ ====== 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**: <> -> Meine Daten auf Youtube (eigene Videos nicht exportieren, Format als JSON wählen) * **Instagram**: <> -> 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. 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 ===== ==== Text-Dateien ==== 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) * [[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. * 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. * Legen Sie ein Verzeichnis ''jsontest'' an, in dem Sie die beiden folgenden Dateien ''mini.json'' und ''einlesen.py'' speichern (**Rechtsklick, Link speichern unter...**) [ {"name":"test", "inhalt": [5,42,23,4321] }, {"name":"bla", "inhalt": [7,8,9] } ] import json with open("mini.json") as f: mydata = json.load(f) print('mydata[1]["name"] =', mydata[1]["name"]) # oder (fast) dasselbe etwas kürzer mit sogenannten f-strings (= formatted strings): print(f'{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 * "bla"Achtung! Arrays werden mit Null beginnend indiziert. * Fehler, das erste Object hat keinen Schlüssel "test" * mydata[0]["inhalt"][1] * [7,8,1234] 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"])