[Zope] Re: tal expression

Wolfram Kraus kraus at hagen-partner.de
Thu Nov 4 04:01:11 EST 2004


Garito wrote:
> Andreas Jung wrote:
> 
>>
>>
>> --On Donnerstag, 4. November 2004 9:09 Uhr +0100 Garito 
>> <garito at sistes.net> wrote:
>>
>>> Hi
>>> will these be possible?
>>>
>>> <tal:b tal:define='dictionary python: {"value1": ["one", "two", 
>>> "three"],
>>> "value2": "two", "value3": "three"}'>
>>>     <tal:b tal:replace='python: dictionary["value1"][5] | "Value not
>>> available"' />
>>> </tal:b>
>>>
>>> Obviously these is an incorrect tal expression (the replace one) but
>>> there are any way to create an expression like these and correct?
>>>
>>
>> Please look at the Python Dictionary API, especially the has_key() or 
>> get() method.
>>
>> -aj
> 
> 
> Hi Andreas (Good morning!)
> Thank you for your light speed response ;)
> The get() method would be fantastic but my problem is with the list
> I know that value1 exists in the dictionary but I don't know the length 
> of the list
> It would be perfect if I have some get method (with default value like 
> dictionary's get) for the list
> 
> Another possibility will be some if sentence like expresion ? result for 
> true : result for false Has python these kind of if?
> 
> Any idea?
> 
Put the tal:replace-part in a python script, Parameters mdict, mkey idx, 
msg:
try:
   return mdict.get(mkey,[])[idx]
except IndexError:
   return msg

Untested!

HTH,
Wolfram



More information about the Zope mailing list