On Saturday, October 5, 2013 7:24:39 PM UTC-6, Tim Chase wrote: > On 2013-10-05 18:08, Harvey Greenberg wrote: > > > I am looping as for L in file.readlines(), where file is csv. > > > > > > L is a list of 3 items, eg, [{'a':1, 'b':2}, [1,2,3], 10] Note that > > > the first item is a dir and 2nd is a list, so parsing with split > > > doesn't work. Is there a way to convert L, which is a string, to > > > the list of 3 items I want? > > > > sounds like you want ast.literal_eval(): > > > > Python 2.7.3 (default, Jan 2 2013, 13:56:14) > > [GCC 4.7.2] on linux2 > > Type "help", "copyright", "credits" or "license" for more > > information. > > >>> s = "[{'a':1, 'b':2}, [1,2,3], 10]" > > >>> import ast > > >>> print repr(ast.literal_eval(s)) > > [{'a': 1, 'b': 2}, [1, 2, 3], 10] > > > > -tkc
that didn't work. printing it looks like the list because it's the input, but try printing len(repr(ast.literal_eval(s))). It should give 3, but it gives 72 (number of chars). -- https://mail.python.org/mailman/listinfo/python-list