Comment obtenir pprint de python pour renvoyer une chaîne au lieu de l'imprimer?


180

En d'autres termes, quel est l'équivalent sprintf de pprint?

Réponses:


262

Le module pprint a une commande nommée pformat , dans ce but précis.

De la documentation:

Renvoie la représentation formatée de l'objet sous forme de chaîne. le retrait, la largeur et la profondeur seront passés au constructeur PrettyPrinter en tant que paramètres de formatage.

Exemple:

>>> import pprint
>>> people = [
...     {"first": "Brian", "last": "Kernighan"}, 
...     {"first": "Dennis", "last": "Richie"},
... ]
>>> pprint.pformat(people, indent=4)
"[   {   'first': 'Brian', 'last': 'Kernighan'},\n    {   'first': 'Dennis', 'last': 'Richie'}]"


14
>>> import pprint
>>> pprint.pformat({'key1':'val1', 'key2':[1,2]})
"{'key1': 'val1', 'key2': [1, 2]}"
>>>


8

Quelque chose comme ça:

import pprint, StringIO

s = StringIO.StringIO()
pprint.pprint(some_object, s)
print s.getvalue() # displays the string 

1
techniquement, la seule réponse "correcte" compte tenu uniquement du titre
villasv
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.