First, please post in plain text, not HTML. It saves space and keeps the natives from getting restless. As a general rule, try breaking problems down to smaller bits. You've posted a Really Big Thing for anyone else to spend time deciphering. I suspect what you are trying to do could be achived with something like: <dtml-in all_players prefix=player> <dtml-in expr="kill_stats(player_item)" prefix=kill> <dtml-var kill_item> or maybe <dtml-var kill_item.sucking_wounds> <dtml-var kill_item.gaping_wounds> </dtml-in> <dtml-in expr="hostage_kill_stats(player_item)" prefix=hostage> <dtml-var hostage_item> </dtml-in> ...etc... </dtml-in> In other words, don't do everything at once. This will greatly reduce the severity and frequency of your headaches. FWIW, you might need to use the dtml-in mapping option if you insist on using python code and returing sequences of dictionaries. You could also, possibly, use pluggable brains. The following included message is greatly shortened... -----Original Message----- From: zope-admin@zope.org [mailto:zope-admin@zope.org]On Behalf Of Thomas Weholt Sent: Monday, July 08, 2002 4:04 PM To: zope@zope.org Subject: [Zope] Returning a list of dictionaries from an external method yields "Loop over non-sequence" when tested I've got a simple external method that returns a list containing dictionaries. If I run it from python it works fine, imported and used in Zope it raises an exception "Loop over non-sequence". The script extracts some data from a table, containing the results from a parsed logfile, created by the game Counter-strike ( if you're interested ). I'm no expert in SQL ( as the code below probably shows ) but doing it in Python is no match ( even if the code is verbose and perhaps a bit inefficient. Tips and clues are appreciated if you can make anything out of it ). ......