Well, maybe you should consider processing the tuple you plan to return somehow to change the datetimes and Decimals to something more palatable to @jsonify before returning it (via the decorator). If your controller action is only returning JSON, then this shouldn't be a problem?
Domhnall. 2009/4/30 Uwe Feldtmann <[email protected]> > Thanks Domhnall. > > Not sure if it will help as I'm using the jsonify decorator on a method in > the controller and it is what is failing when attempting to wrap the result > set. > > I managed to get the dates to work out by simply checking for data type and > then assigning in the controller. > > Decimals on the other hand are not working for me. There doesn't appear to > be a way to extract the value of a Decimal into another variable without > copying the entire object. > > Any suggestions or pointers greatly appreciated. > > Domhnall Walsh wrote: > > HI: > > This might give you a start: > > import simplejson > > class FancyEncoder(simplejson.JSONEncoder): > """ > Handle datetime objects. > """ > > def default(self, obj): > if isinstance(obj, datetime.datetime): > return obj.isoformat() > > # Add more type-specific handlers here, for example for Decimals > > return simplejson.JSONEncoder.default(self, obj) > > json = simplejson.dumps(data_to_encode, cls=FancyEncoder) > > As you can see it replaces the datetimes with their ISO format > representations as strings. > > Hope this helps, > Domhnall. > > > > 2009/4/30 Uwe Feldtmann <[email protected]> > >> Hi all. >> >> I've been struggling with a controller that gets a result set from a >> database and should simply return that result set as json data and I keep >> getting this traceback >> >> TypeError: Decimal("0.00") is not JSON serializable >> >> the data returned from the db is: >> (1492, 'BAKER', 'MR. AND MRS BAKER', Decimal("843.50"), >> Decimal("5000.00"), Decimal("0.00"), datetime.date(1998, 8, 24), >> datetime.date(1998, 8, 31)) >> >> Is this an issue with @jsonify or am I missing something? >> >> >> I am using simplejson-2.0.8 and py2.5 >> >> Thanks in advance. >> >> >> > > > -- > Quidquid latine dictum sit, altum sonatur. > (Whatever is said in Latin sounds profound) > > > > > > -- Quidquid latine dictum sit, altum sonatur. (Whatever is said in Latin sounds profound) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/pylons-discuss?hl=en -~----------~----~----~----~------~----~------~--~---
