The pprint module has a function named pformat, for just that purpose.
From the documentation:
Return the formatted representation of object as a string. indent, width and depth will be passed to the PrettyPrinter constructor as formatting parameters.
Example:
>>> 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'}]"
Answer from SilentGhost on Stack OverflowThe pprint module has a function named pformat, for just that purpose.
From the documentation:
Return the formatted representation of object as a string. indent, width and depth will be passed to the PrettyPrinter constructor as formatting parameters.
Example:
>>> 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'}]"
Assuming you really do mean pprint from the pretty-print library, then you want
the pprint.pformat function.
If you just mean print, then you want str()
Videos
You should simply call the pformat function from the pprint module:
import pprint
s = pprint.pformat(aDict)
I sometimes use the json module for that:
In [1]: import json
In [2]: d = {'a':1, 'b':2, 'c':{'a':1}}
In [3]: s = json.dumps(d, indent=4)
In [4]: s
Out[4]: '{\n "a": 1, \n "c": {\n "a": 1\n }, \n "b": 2\n}'
In [5]: print s
{
"a": 1,
"c": {
"a": 1
},
"b": 2
}