string to list when the contents is a list
python.list at tim.thechases.com
Thu Feb 18 16:18:57 CET 2010
Wes James wrote:
> I have been trying to create a list form a string. The string will be
> a list (this is the contents will look like a list). i.e. "" or
> The "" is simple since I can just check if value == "" then return 
> But with "['a','b']" I have tried and get:
> [ " 'a' "," 'b' " ]
> when I want it to return ['a','b'].
Just to add to the list of solutions I've seen, letting the
built-in csv module do the heavy lifting:
>>> s = "['a','b']"
>>> import csv
>>> no_brackets = s[1:-1] # s.strip(' \t')
>>> c = csv.reader([no_brackets], quotechar="'")
This also gives you a bit of control regarding how escaping is
done, and other knobs & dials to twiddle if you need.
Additionally, if you have more than one string to process coming
from an iterable source (such as a file), you can just pass that
iterator to csv.reader() instead of concocting a one-element list.
More information about the Python-list