Kashif Jabbar wrote at 2004-2-6 14:01 -0600:
I am trying to store a dictionary in a cookie which I would like to retrieve later and use.
You must understand what cookies are. Reading the cookie specification may help. You cannot expect that a Python dictionary used as a cookie value comes back as a Python dictionary. In fact, Zope transforms it to a string (as it knows, that a cookie value must be a string), and it comes back as this string (and not the original dictionary).
... mydic = request.myCookie print mydic['filter']
return printed ###########
When the script is run I get an error:
*Error Type: TypeError* *Error Value: sequence index must be integer*
It seems that the dictionary is returned as a string. Indeed.
How can I cast this string to a dictionary type?
You cannot. You might be able to use "eval" (in an External Method) to get the original dict back (it will work, if the dictionary contained only simple objects). Be warned, however, that "eval" is a dangerous function, when applied to untrusted strings (such as strings sent as cookies). -- Dieter