(Newbie stops, wipes pieces of wall from forehead, and asks for help.) I'm stumped trying to use a Script (Python) to change the properties of a sequence of Zope objects. Here's the problem: certain objects (simple folderish objects of my 'Cable Channel' ZClass) have a property called 'categories' that needs to be in the form of a Python *list*. In many instances, however, the property was saved as a *string*. (For more detail, see my January 6 post "Solution for 'in requires character as left operand' error".) In my Script (Python), I've been successful identifying the problem objects and retrieving from them their 'categories' string. Also, I can convert the string into a "singleton" list. Then I hit problems. I want to iterate over these objects, calling a method that will change each one's 'categories' property. Hell if I can do this! I create a list of two-item tuples, the first element of each is a reference (of some sort - the problem may lie here) to a 'Cable Channel' object with the problem 'categories' property. The second item of each tuple is a proper Python list version of the property. I've been beating my head against things like: object_tuple[0].manage_changeProperties({'categories':object_tuple[1]}) I'm missing something about how to call a method on an object from a Script Python (and the object is indicated by a variable or index). Please help, if you can! My newbie hackery is included below. I thank you in advance, Jon Whitener Detroit Michigan USA ## Script (Python) "fix_channels_with_problem" ##bind container=container ##bind context=context ##bind namespace= ##bind script=script ##bind subpath=traverse_subpath ##parameters= ##title= ## # def channels_with_problem(): # Return a list of tuples (lot). The first element of each tuple # is a Cable Channel object with a problem 'categories' property. # The second item of each tuple is the proper list version of the # Cable Channel's categories property. problem_cc_lot = [] for channel in context.objectValues('Cable Channel'): # Parse first 'list item' from the 'categories' property. # If categories is stored as a string, the first item # will be a single character. if len(channel.categories[0]) < 2: # Convert the 'categories' value into a list, then # add the appropriate (object, categories) tuple to # the list. cat_list = [] cat_list.append(channel.categories) channel_to_fix = (channel, cat_list) problem_cc_lot.append(channel_to_fix) return problem_cc_lot items_to_fix = channels_with_problem() # Everything is peachy so far, but when I try to process the items in # items_to_fix, I get nowhere. I want logic like this: # for every tuple in items_to_fix: # take the first item (the Zope object) # and change its 'categories' property to the tuple's second item.