On Wed, Jul 11, 2012 at 02:18:04PM +0530, kala Vinay wrote: > Hi all, > > say i have a string s="['a','b']" and i want to get a list object > from this string s ie l=['a','b']
The AST module contains a safe way to parse and eval literal expressions, including strings, nested lists, and builtin constants like None, True and False. py> import ast py> ast.literal_eval('[23, 42, "hello", "world", -1.5, [], {}]') [23, 42, 'hello', 'world', None, True, False, -1.5, [], {}] Unlike the eval command, it is safe and won't execute code: py> text = '__import__("os").system("echo \\"Your computer is mine now!\\"")') py> eval(text) Your computer is mine now! 0 py> ast.literal_eval(text) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.6/ast.py", line 68, in literal_eval return _convert(node_or_string) File "/usr/lib/python2.6/ast.py", line 67, in _convert raise ValueError('malformed string') ValueError: malformed string -- Steven _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor