Problems with debugging Lists

Sancar Saran sancar.saran at evodot.com
Sat Dec 12 04:28:15 EST 2009


On Saturday 12 December 2009 04:52:26 am Gabriel Genellina wrote:
> En Fri, 11 Dec 2009 19:11:38 -0300, Sancar Saran <sancar.saran at evodot.com>
> 
> escribió:
> > In php we had print_r function to see entire array structure. After some
> > search I found some equal module named pprint.
> >
> > And some how this module wont work with mod_wsgi it was something about
> > mod_wsgi portability standards.
> >
> > After some research there where some thing about putting some variables
> > in
> > apache config to disable this.
> >
> > And now I can see some dictionary structure in my apache log and I got
> > some
> > errors like
> > r += pprint.pprint(self.data)
> > TypeError: cannot concatenate 'str' and 'NoneType' objects
> 
> The pprint function in the pprint module (that is, pprint.pprint) *prints*
> its argument, and returns nothing -- or, better said, it returns None
> (same as print_r in PHP, without the return parameter set to true)
> 
> > So is there any way to get dictionary structure in string format ?
> 
> You don't need anything special for that. There are two built-in functions
> that convert any object to string: str and repr. str(x) provides a simple
> representation of x (whatever it is), and repr(x) provides a more
> technical view; when possible, eval(repr(x)) should return x.
> For debugging purposes, repr() is your friend.
> pprint.pformat is like the built-in repr(), but provides a better
> formatted representation, with indenting, a maximum width, etc.
> 
> > Another question is. When I import a module from top is it available for
> > later
> > imported modules
> 
> Each module contains its own, separate namespace. If you `import foo` in
> some module, the name `foo` becomes available to be used in that module --
> if you want to use `foo` in another module, you have to `import foo` in
> that other module too.
> 
> Don't worry; after the very first import (which involves locating the
> module, loading and compiling it if necesary, and writing the .pyc file)
> any subsequent imports of the same module just return a new reference to
> the existing, in-memory module object.
> 
Hello Gabriel,

Thanks for support.

repr works as you say and I had some complaints, it wont format the output. 
Finding some string in 100 key dictionary in formatted in single line bit 
problematic. Is it any way to format it ?

Also, very interesting things are happen.

def debug(self):

	r = '<pre>'
	r += repr(self.data)
	r += '</pre>'

	return r

following code works and does not work ever reload ?

One time work another reload wont work.  What I missing ?

And is possible to get this ? (I store the environ here)

	r += repr(self.data['environ']['mod_wsgi.listener_port'])

or similar multi sub level elements ?

Regards...



More information about the Python-list mailing list