Hi,
As a quick workaround, I thought of modifying serializers.custom_json
in the following manner:
1. check whether the item is a lambda expression
2. if so, return its string representation (using repr())

I used a nice "islambda" function I found in
http://bytes.com/topic/python/answers/39908-what-lambda-used-real-code

I guess there's no point in returning the string represntation of the
function to the user, so this probably won't be the final solution to
this issue.

What do yo think about this fix?

Sincerely,
   Amnon

On Sep 2, 6:57 pm, Amnon Khen <[email protected]> wrote:
> Dear web2py folks,
>
> I have a controller that fetches a record from the DB (I'm using
> GAE).
>
>    def event():
>       id=request.args[0]
>       myrow = db.event[id]
>       return dict(myrow = myrow)
>
> What I try to render the result as JSON, I get the following error
> (trace starts from generic.json view)
>
>   File "C:\Users\Hampi\git\skeduk\web2py\gluon\serializers.py", line
> 30, in custom_json
>     raise TypeError(repr(o) + " is not JSON serializable")
>   TypeError: <function <lambda> at 0x05EA7A30> is not JSON
> serializable
>
> When I try to render the same controller's result using the
> generic.xml view, the rending is done OK, nad I see that "function
> <lambda> at 0x05EA7A30" is the row's "update_record" method.
>
> Why are my object's methods being serialized?
> Is this a bug in the custom_json function in serializers.py?
>
> Thanks for you help,
>    Amnon Khen

Reply via email to