Mark Evans writes:
I am having problems with an Unsubscriptable object error in Zope when the returned tuple only contains one element. The error goes away if the tuple has 2 or more elements. Any advice would be greatly appreciated. See details below. Thanks in advance, Mark
The following works in the python 2.1 interpreter:
import DCOracle2 as dco d = dco.connect("scott/tiger@devbase") c = d.cursor() sql = "select status from ordered" c.execute(sql) 1 foo = c.fetchone() print foo ['yes'] print foo[0] yes
When this is run as an external method in Zope, everything works, unless you do foo[0]. Then you get the error:
Zope Error
Zope has encountered an error while publishing this resource.
Error Type: TypeError Error Value: unsubscriptable object ... File C:\PROGRA~1\ZopeDev\lib\python\Products\ExternalMethod\ExternalMethod.py, line 198, in __call__ (Object: checkOrderDatabase) (Info: ((['1234A', '5678B'],), {}, None)) File C:\Program Files\ZopeDev\Extensions\checkOrderDatabase.py, line 29, in main TypeError: (see above) You are sure, line 29 is "print foo[0]"? Maybe, the error is somewhere else?
Zope won't let me subscript a tuple or a list? Inside an External Method, Zope does nothing to your Python code. It should ran exactly as outside of Zope.
Dieter