Jolie imprimer un dictionnaire en Python
-
Utilisez
pprint()
pour imprimer un dictionnaire en Python -
Utilisez
json.dumps()
pour imprimer un dictionnaire en Python -
Utilisez
yaml.dump()
pour imprimer un joli dictionnaire en Python
Ce tutoriel présente la façon d’imprimer un dictionnaire en Python. Jolie impression signifie présenter quelque chose dans un format ou un style plus lisible.
Utilisez pprint()
pour imprimer un dictionnaire en Python
pprint
est un module Python qui permet d’imprimer des types de données Python pour les rendre plus lisibles. Ce module permet également d’imprimer un dictionnaire.
Dans le module pprint
il y a une fonction du même nom pprint()
, qui est la fonction utilisée pour imprimer la chaîne ou l’objet donné.
D’abord, déclarer un tableau de dictionnaires. Ensuite, il faut l’imprimer en utilisant la fonction pprint.pprint()
.
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)
Production :
[{'Age': '23', 'Country': 'USA', 'Name': 'John'},
{'Age': '44', 'Country': 'Spain', 'Name': 'Jose'},
{'Age': '29', 'Country': 'UK', 'Name': 'Anne'},
{'Age': '35', 'Country': 'Japan', 'Name': 'Lee'}]
Pour comparer, voici la sortie d’une déclaration print()
normale :
[
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
La sortie de pprint()
est nettement plus lisible. Elle casse chaque élément du dictionnaire dans le tableau juste après les virgules tout en triant les valeurs du dictionnaire par clé.
Si vous ne voulez pas que vos paires clé-valeur soient triées par clé, alors pprint()
n’est pas la fonction à utiliser car son mécanisme de tri est intégré dans la fonction.
Une autre chose à noter est que pprint()
n’imprimera pas très bien les objets imbriqués, y compris les dictionnaires imbriqués. Donc si vous vous attendez à ce que vos valeurs soient imbriquées, alors ce n’est pas la solution pour cela non plus.
Utilisez json.dumps()
pour imprimer un dictionnaire en Python
Dans le module Python json
, il y a une fonction appelée dumps()
, qui convertit un objet Python en une chaîne JSON. En plus de la conversion, elle formate également le dictionnaire en un joli format JSON, ce qui peut être un moyen viable d’imprimer un joli dictionnaire en le convertissant d’abord en JSON.
La fonction dumps()
accepte 3 paramètres utilisés pour l’impression jolie : l’objet pour la conversion, une valeur booléenne sort_keys
, qui détermine si les entrées doivent être triées par clé, et indent
, qui spécifie le nombre d’espaces pour l’indentation.
Nous utiliserons le même exemple de dictionnaire que ci-dessus pour cette solution. sort_keys
est mis à False
pour désactiver le tri, et indent
est mis à 4
espaces.
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))
Production :
[
{
"Age": "23",
"Country": "USA",
"Name": "John"
},
{
"Age": "44",
"Country": "Spain",
"Name": "Jose"
},
{
"Age": "29",
"Country": "UK",
"Name": "Anne"
},
{
"Age": "35",
"Country": "Japan",
"Name": "Lee"
}
]
Comparé à la sortie de la fonction pprint()
, c’est beaucoup plus lisible, bien que cela coûte plus de lignes puisque c’est dans un joli format JSON.
Que faire si les valeurs données ont un dictionnaire imbriqué à l’intérieur ? Editons un peu l’exemple et regardons la sortie.
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))
Production :
[
{
"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"
}
}
]
Evidemment, les jolis dictionnaires imbriqués JSON sont pris en charge par json.dump()
, et visuellement cela semble propre et très lisible même si c’est imbriqué.
Utilisez yaml.dump()
pour imprimer un joli dictionnaire en Python
Une autre façon d’imprimer joliment un dictionnaire est d’utiliser la fonction dump()
du module yaml
. Elle sert le même objectif que la fonction json.dumps()
mais au format YAML au lieu de JSON.
Tout d’abord, installez le module YAML en utilisant pip
:
pip install pyyaml
ou si vous utilisez Python 3 et pip3
:
pip3 install pyyaml
Essayons avec le même exemple imbriqué utilisé dans l’exemple JSON.
Prenez note du nouveau paramètre default_flow_style
, qui détermine si le style de sortie du dump doit être inline
ou block
. Dans ce cas, la sortie doit être de type bloc car nous voulons qu’elle soit lisible, donc mettez ce paramètre à 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))
Production :
- 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
En résumé, il est subjectif de savoir si la fonction YAML dump()
est plus lisible que la fonction JSON dumps()
. Cela dépend de la préférence personnelle ou du type de sortie requis. Les deux fonctions battent la sortie de pprint
lorsqu’il s’agit de structures de données plus complexes ou d’objets imbriqués.
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.
LinkedInArticle connexe - Python Dictionary
- Comment vérifier si une clé existe dans un dictionnaire en Python
- Convertir un dictionnaire en liste en Python
- Comment obtenir tous les fichiers d'un répertoire
- Comment trouver la valeur maximale dans le dictionnaire Python
- Comment trier un dictionnaire Python par valeur
- Comment fusionner deux dictionnaires en Python 2 et 3