help

Tim Chase python.list at tim.thechases.com
Fri Jul 20 02:46:36 CEST 2012


On 07/19/12 19:32, Miriam Gomez Rios wrote:
>>>>   s = "('per1','persona1.1','pro1'),('per1','persona1.1','pro2')"
>>   resulting_tuple_of_tuples = ast.literal_eval(s)
>
> Traceback (most recent call last):
>   File "C:\Users\Miriam\scripts\prueba_datos", line 124, in <module>
>     print resulting_tuple.select('perf1','*','*')
> AttributeError: 'tuple' object has no attribute 'select'

[copying the list, trimming your reply and changing to inline
quoting for easier reading]

I'm not sure why you expect there to be a .select method on the
resulting object.  Neither a list-of-tuples or a tuple-of-tuples has
a .select method.  It *sounds* like what you want to do is then to
do something like

  d = ast.literal_eval(s) # data as a tuple-of-tuples
  filtered = [t for t in d where t[0] == "perf1"]

or you can do

  filtered = [(v1,v2,v3) for (v1,v2,v3) in d where v1=="perf1"]

which allows you to assign more meaningful names to the bits, as
well as rearrange/select the contents:

  filtered = [(v3,v2) for (v1,v2,v3) in d where v1=="perf1"]

or you can even do further work like instantiating objects:

  filtered = [MyCls(v3,v2) for (v1,v2,v3) in d where v1=="perf1"]

Espero q' eso le ayuda a usted.

-tkc






More information about the Python-list mailing list