Pretty Print eines Dictionaries in Python
-
Verwenden Sie
pprint()
, um ein Dictionary in Python hübsch auszudrucken -
Verwendung von
json.dumps()
zum Pretty-Printing eines Dictionaries in Python -
Verwenden Sie
yaml.dump()
, um ein Dictionary in Python hübsch auszudrucken
In diesem Tutorial wird gezeigt, wie man ein Dictionary in Python hübsch ausdrucken kann. Pretty print bedeutet, etwas in einem besser lesbaren Format oder Stil darzustellen.
Verwenden Sie pprint()
, um ein Dictionary in Python hübsch auszudrucken
Das Modul pprint
ist ein Python-Modul, das die Möglichkeit bietet, Python-Datentypen hübsch auszudrucken, damit sie besser lesbar sind. Dieses Modul unterstützt auch das Pretty-Printing von Dictionaries.
Innerhalb des Moduls pprint
gibt es eine gleichnamige Funktion pprint()
, mit der die angegebene Zeichenkette oder das angegebene Objekt hübsch ausgedruckt wird.
Deklarieren Sie zunächst ein Array von Dictionaries. Anschließend wird es mit der Funktion pprint.pprint()
hübsch ausgedruckt.
import pprint
dct_arr = [
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
pprint.pprint(dct_arr)
Ausgabe:
[{'Age': '23', 'Country': 'USA', 'Name': 'John'},
{'Age': '44', 'Country': 'Spain', 'Name': 'Jose'},
{'Age': '29', 'Country': 'UK', 'Name': 'Anne'},
{'Age': '35', 'Country': 'Japan', 'Name': 'Lee'}]
Zum Vergleich sehen Sie hier die Ausgabe einer normalen print()
-Anweisung:
[
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
Die Ausgabe von pprint()
ist definitiv besser lesbar. Sie bricht jedes Element des Dictionaries im Array direkt nach den Kommas ab und sortiert die Werte des Dictionaries nach dem Schlüssel.
Wenn Sie Ihre Schlüssel-Wert-Paare nicht nach Schlüssel sortiert haben wollen, dann ist pprint()
nicht die richtige Funktion, da der Sortiermechanismus in die Funktion eingebaut ist.
Eine weitere Sache, die zu beachten ist, ist, dass pprint()
verschachtelte Objekte, einschließlich verschachtelter Dictionaries, nicht schön ausgibt. Wenn Sie also erwarten, dass Ihre Werte verschachtelt sind, dann ist dies auch nicht die Lösung dafür.
Verwendung von json.dumps()
zum Pretty-Printing eines Dictionaries in Python
Innerhalb des Python-Moduls json
gibt es eine Funktion namens dumps()
, die ein Python-Objekt in einen JSON-String konvertiert. Abgesehen von der Konvertierung formatiert sie das Dictionary auch in ein hübsches JSON-Format, so dass dies eine praktikable Möglichkeit sein kann, ein Dictionary hübsch auszudrucken, indem man es zuerst in JSON konvertiert.
Die Funktion dumps()
akzeptiert 3 Parameter, die für das Pretty-Printing verwendet werden: das zu konvertierende Objekt, einen booleschen Wert sort_keys
, der bestimmt, ob die Einträge nach Schlüssel sortiert werden sollen, und indent
, der die Anzahl der Leerzeichen für die Einrückung angibt.
Wir verwenden für diese Lösung das gleiche BeispielDictionary wie oben. sort_keys
wird auf False
gesetzt, um die Sortierung zu deaktivieren, und indent
wird auf 4
Leerzeichen gesetzt.
import json
dct_arr = [
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
print(json.dumps(dct_arr, sort_keys=False, indent=4))
Ausgabe:
[
{
"Age": "23",
"Country": "USA",
"Name": "John"
},
{
"Age": "44",
"Country": "Spain",
"Name": "Jose"
},
{
"Age": "29",
"Country": "UK",
"Name": "Anne"
},
{
"Age": "35",
"Country": "Japan",
"Name": "Lee"
}
]
Verglichen mit der Ausgabe der Funktion pprint()
ist diese viel lesbarer, obwohl sie mehr Zeilen kostet, da sie im hübschen JSON-Format vorliegt.
Was ist, wenn die übergebenen Werte ein verschachteltes Dictionary in sich tragen? Lassen Sie uns das Beispiel ein wenig bearbeiten und einen Blick auf die Ausgabe werfen.
import json
dct_arr = [
{"Name": "John", "Age": "23", "Residence": {"Country": "USA", "City": "New York"}},
{"Name": "Jose", "Age": "44", "Residence": {"Country": "Spain", "City": "Madrid"}},
{"Name": "Anne", "Age": "29", "Residence": {"Country": "UK", "City": "England"}},
{"Name": "Lee", "Age": "35", "Residence": {"Country": "Japan", "City": "Osaka"}},
]
print(json.dumps(dct_arr, sort_keys=False, indent=4))
Ausgabe:
[
{
"Name": "John",
"Age": "23",
"Residence": {
"Country": "USA",
"City": "New York"
}
},
{
"Name": "Jose",
"Age": "44",
"Residence": {
"Country": "Spain",
"City": "Madrid"
}
},
{
"Name": "Anne",
"Age": "29",
"Residence": {
"Country": "UK",
"City": "England"
}
},
{
"Name": "Lee",
"Age": "35",
"Residence": {
"Country": "Japan",
"City": "Osaka"
}
}
]
Offensichtlich werden hübsche verschachtelte JSON-Wörterbücher mit json.dump()
unterstützt, und optisch sieht es sauber und sehr lesbar aus, auch wenn es verschachtelt ist.
Verwenden Sie yaml.dump()
, um ein Dictionary in Python hübsch auszudrucken
Eine andere Möglichkeit, ein Dictionary hübsch auszudrucken, ist die Verwendung der Funktion dump()
des Moduls yaml
. Sie erfüllt den gleichen Zweck wie die Funktion json.dumps()
, allerdings im YAML-Format statt JSON.
Installieren Sie zunächst das YAML-Modul mit pip
:
pip install pyyaml
, oder wenn Sie Python 3 und pip3
verwenden:
pip3 install pyyaml
Probieren wir es mit dem gleichen verschachtelten Beispiel aus, das im JSON-Beispiel verwendet wurde.
Beachten Sie den neuen Parameter default_flow_style
, der bestimmt, ob der Ausgabestil des Dumps inline
oder block
sein soll. In diesem Fall sollte die Ausgabe im Block-Stil erfolgen, da sie lesbar sein soll, also setzen Sie diesen Parameter auf False
.
import yaml
dct_arr = [
{"Name": "John", "Age": "23", "Residence": {"Country": "USA", "City": "New York"}},
{"Name": "Jose", "Age": "44", "Residence": {"Country": "Spain", "City": "Madrid"}},
{"Name": "Anne", "Age": "29", "Residence": {"Country": "UK", "City": "England"}},
{"Name": "Lee", "Age": "35", "Residence": {"Country": "Japan", "City": "Osaka"}},
]
print(yaml.dump(dct_arr, sort_keys=False, default_flow_style=False))
Ausgabe:
- Name: John
Age: '23'
Residence:
Country: USA
City: New York
- Name: Jose
Age: '44'
Residence:
Country: Spain
City: Madrid
- Name: Anne
Age: '29'
Residence:
Country: UK
City: England
- Name: Lee
Age: '35'
Residence:
Country: Japan
City: Osaka
Zusammenfassend lässt sich sagen, dass es subjektiv ist, ob die YAML-Funktion dump()
besser lesbar ist als die JSON-Funktion dumps()
oder nicht. Es ist eine Frage der persönlichen Vorliebe oder welche Art von Ausgabe benötigt wird. Beide Funktionen schlagen die Ausgabe von pprint
, wenn es um komplexere Datenstrukturen oder verschachtelte Objekte geht.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInVerwandter Artikel - Python Dictionary
- Wie man prüft, ob ein Schlüssel in einem Dictionary in Python vorhanden ist
- Konvertieren eines Dictionaries in eine Liste in Python
- So erhalten Sie alle Dateien eines Verzeichnisses
- Wie finde ich den Maximalwert im Python-Dictionary
- Wie man ein Python-Dictionary nach Wert sortiert
- Wie man zwei Wörterbücher in Python 2 und 3 zusammenführen kann