mattia wrote: > Il Sat, 14 Mar 2009 10:35:59 +0100, Peter Otten ha scritto: > >> mattia wrote: >> >>> How can I convert the following string: >>> >>> 'AAR','ABZ','AGA','AHO','ALC','LEI','AOC', >>> EGC','SXF','BZR','BIQ','BLL','BHX','BLQ' >>> >>> into this sequence: >>> >>> ['AAR','ABZ','AGA','AHO','ALC','LEI','AOC', >>> EGC','SXF','BZR','BIQ','BLL','BHX','BLQ'] >> >>>>> s = "'AAR','ABZ','AGA','AHO','ALC','LEI','AOC'" >>>>> csv.reader(StringIO.StringIO(s), quotechar="'").next() >> ['AAR', 'ABZ', 'AGA', 'AHO', 'ALC', 'LEI', 'AOC'] >> >> or >> >>>>> s = "'AAR','ABZ','AGA','AHO','ALC','LEI','AOC'" list(compile(s, >>>>> "nofile", "eval").co_consts[-1]) >> ['AAR', 'ABZ', 'AGA', 'AHO', 'ALC', 'LEI', 'AOC'] >> >> Peter > > Ok, and what about if the string is "['AAR', 'ABZ', 'AGA', 'AHO', 'ALC']" > I wanted to use eval(string) but it is discouraged, they say.
If you use the csv module you can remove the [] manually assert s.startswith("[") assert s.endswith("]") s = s[1:-1] compile() will work without the enclosing list(...) call. Yet another one is flights = re.compile("'([A-Z]+)'").findall(s) if any(len(f) != 3 for f in flights): raise ValueError Peter -- http://mail.python.org/mailman/listinfo/python-list