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/23 12:30] – [Datenformate] Ivo Blöchligerlehrkraefte:blc:informatik:glf4-23:socialmedia-data:start [2024/02/25 21:43] (current) Olaf Schnürer
Line 1: Line 1:
 +~~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**: <<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 =====
 +
 +==== 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.
 +
 +
 +<WRAP todo>
 +  * 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 mini.json>
 +[
 + {"name":"test",
 +  "inhalt": [5,42,23,4321]
 + },
 + {"name":"bla",
 +  "inhalt": [7,8,9]
 + }
 +]
 +</code>
 +<code python einlesen.py>
 +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"])
 +</code>
 +
 +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 <HTML>mydata[1]["name"]</HTML>
 +  * 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>
 +
 +<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>
 +
 +<code python 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"])
 +</code>
 +</hidden>
 +</WRAP>
 +
 +
 +