J'essaie d'obtenir une jolie copie d'un dictionnaire, mais je n'ai pas de chance:
>>> import pprint
>>> a = {'first': 123, 'second': 456, 'third': {1:1, 2:2}}
>>> pprint.pprint(a)
{'first': 123, 'second': 456, 'third': {1: 1, 2: 2}}
Je voulais que la sortie soit sur plusieurs lignes, quelque chose comme ceci:
{'first': 123,
'second': 456,
'third': {1: 1,
2: 2}
}
Est-ce que pprint
peut le faire? Si non, alors quel module fait-il? J'utilise Python 2.7. .
Utilisation width=1
ou width=-1
:
In [33]: pprint.pprint(a, width=1)
{'first': 123,
'second': 456,
'third': {1: 1,
2: 2}}
Vous pouvez convertir le dict en json via json.dumps(d, indent=4)
print(json.dumps(item, indent=4))
{
"second": 456,
"third": {
"1": 1,
"2": 2
},
"first": 123
}
Si vous essayez d’imprimer assez les variables d’environnement, utilisez:
pprint.pprint(dict(os.environ), width=1)
Deux choses à ajouter à la réponse déjà très utile de Ryan Chou:
sort_keys
pour faciliter la lecture visuelle de votre dict, esp. si vous travaillez avec les versions antérieures à 3.6 Python (dans lequel les dictionnaires ne sont pas ordonnés)print(json.dumps(item, indent=4, sort_keys=True))
"""
{
"first": 123,
"second": 456,
"third": {
"1": 1,
"2": 2
}
}
"""
dumps()
ne fonctionnera que si les clés du dictionnaire sont des primitives (chaînes, int, etc.)