pprint - Daten leserlich formatiert ausgeben
Ziel
Ich weiß, wie ich auch komplexere Datensätze über die Kommandozeile lesbar formatiert ausgeben kann.
Hintergrund
Daten über die Kommandozeile auszugeben ist wohl eines der grundlegendsten Features jeder Programmiersprache und
meistens das Erste, was man beim Erlernen einer neuen Programmiersprache lernt (HelloWorld). Möchte man aber komplexere
Datenstrukturen ausgeben, kann ein simpler print()
-Befehl schnell unleserlich werden und das manuelle Formatieren der
Datenstruktur ist repetitiv und zeitaufwändig. Daher bietet die Standardbibliothek mit pprint
(Pretty Print) ein Tool,
dass einem im Alltag einiges an Zeit und Arbeit sparen kann.
Arbeitsschritte
- Legen Sie die Datei
m_pprint.py
an und benutzen Sie diese Datei für den Rest der Aufgabe. Fügen Sie ihre Python Kommandos skript-artig hintereinander in die Datei ein, mit Leerzeile getrennt. - Kopieren Sie den folgenden Code-Block und speichern diesen in einer JSON-Datei im selben Verzeichnis.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
- Importieren sie die Daten aus der JSON-Datei in ihrem Code mithilfe der
json
-Bibliothek.
Unterschied von print()
und pprint
- Geben Sie das Objekt
data
zuerst einmal mitprint()
aus (Die Ausgabe muss nicht ins Kommandoprotokoll). Finden Sie, die Ausgabe ist sinnvoll lesbar? - 1 Beschreiben Sie, wie eine Funktion aussehen könnte, die mithilfe von
print()
eine besser lesbare Ausgabe erzeugt. (nur beschreiben, nicht implementieren). Welche Herausforderungen könnten dabei auftreten? - Finden Sie in der Dokumentation von pprint eine Funktion, mit der sie
data
lesbar formatiert ausgeben können. Rufen Sie sie auf und geben Sie davor "# Antwort 1" aus.
PrettyPrinter
-Objekte
- Anstatt die Print-Funktion jedes Mal über das Modul selbst aufzurufen, kann ein eigenes
PrettyPrinter
-Objekt erzeugt werden.
Der Vorteil: Wenn dem Konstruktor die korrekten Parameter übergeben werden, müssen diese nicht bei jedem print erneut mit angegeben werden, sondern werden im Objekt gespeichert. - Erzeugen Sie ein
PrettyPrinter
-Objekt. Dieses soll immer um vier Leerzeichen einrücken und Verschachtelungen nicht detailliert ausgeben. Außerdem sollen Dictionaries in ihrer originalen Sortierung gelassen werden. - Geben Sie mit ihrem
PrettyPrinter
das zweite und vierte Element vondata
aus und davor "# Antwort 2".
Programmlauf für die Abgabe
- 1 Führen Sie das gesamte so erzeugte Programm
m_pprint.py
einmal aus.
Abgabe
Geben Sie ein Markdown-Dokument ab mit knappen Antworten zu den oben gestellten Fragen
1, 2, … Geben Sie diese Marker mit an.
Geben Sie ggf. Beispiele oder benutzte Quellen an.
Geben Sie ein Kommandoprotokoll ab, das genau nur die Eingaben und Ausgaben der obigen Kommandos 1, 2, … enthält. Entfernen Sie vor Abgabe eventuelle Fehlversuche und sonstige zusätzliche Kommandos aus dem Protokoll.
Geben Sie den Quellcode ab, wie er am Ende der Aufgabe vorliegt.