<snip>
I found a way to test if the "ExternalMethod" really returned a dict here:

http://infrae.com/mailman_/pipermail/silva-dev/2004q2/001091.html

And you were right! This is not seen as as a valid dictionary (nor is it
seen as a string):

stuff = container.externalmethod(feedurl=feedurl)
test = same_type(stuff, {})
print test
return printed

returns "0"

However, interestingly enough, if I copy and paste the all the text that
is returned by the external method into the script, I am able to confirm
that it is a dictionary:

stuff= {'lastbuilddate': u'Mon, 24 Jul 2006 12:06:18 EDT', u'subtitle': 'U.S.',
u'generator': 'NPR/RSS Generator 2.0 etc...'}

test = same_type(stuff, {})
print test
return printed

returns "1"

Also, I tried to render the copied text from the external method using the
page template, and received a different error message:

"TypeError: string indices must be integers" (see the attached traceback).

I don't know if this last test will be useful, but I thought I'd give it
a try.

Do you know if there is a way of changing the data type of an object?

Do you know if there is a listing of data types that I could test for?
</snip>

There is an easy, but potentially dangerous way to turn a string representative of a python dictionary back into a 'real' python dictionary... only do this if you are sure of the contents of the dictionary: in an external method:

def string2dict(instr):
       dict = {}
       dict['__builtins__'] = None
       return eval(instr, dict)


hth

Jonathan




Thanks kindly,

John T.





--------------------------------------------------------------------------------


_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )


_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to