From: aimeixu on 9 Aug 2010 05:33 Hi, I am newbie for python ,Here is my question: a = "{'a':'1','b':'2'}" how to change a into a dictionary ,says, a = {'a':'1','b':'2'} Thanks a lot .Really need help.
From: Ulrich Eckhardt on 9 Aug 2010 06:04 aimeixu wrote: > a = "{'a':'1','b':'2'}" > how to change a into a dictionary ,says, a = {'a':'1','b':'2'} You could evaluate it as regular Python code, using "exec": res = {} exec("a={'a':'1'}", res) print res['a'] However, if this is input from a file or the user, be aware that this opens loopholes for executing _any_ code, so you should only exec code from sources you can trust. Uli -- Sator Laser GmbH Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932
From: Chris Rebert on 9 Aug 2010 06:13 On Mon, Aug 9, 2010 at 2:53 AM, Shashwat Anand <anand.shashwat(a)gmail.com> wrote: > On Mon, Aug 9, 2010 at 3:03 PM, aimeixu <aimeixu(a)amazon.com> wrote: >> Hi, >> I am newbie for python ,Here is my question: >> a = "{'a':'1','b':'2'}" >> how to change a into a dictionary ,says, a = {'a':'1','b':'2'} >> Thanks a lot .Really need help. > > Parse the string and re-create the dictionary. >>>> s =Â "{'a':'1','b':'2'}" >>>> ds = {} >>>> for i in s.strip('{}').split(','): > ... Â Â key, val = i.split(':') > ... Â Â ds[key.strip("'")] = val.strip("'") Just for the record, that'll break if the dictionary entries have embedded commas or colons. eval() will handle such cases correctly and probably* run faster, but is obviously insecure. If you have control of both ends of the serialization process, you might consider using the `json` or `pickle` std lib modules instead. Cheers, Chris -- *Do a benchmark obviously. http://blog.rebertia.com
From: Daniel Urban on 9 Aug 2010 13:06 > a = "{'a':'1','b':'2'}" > how to change a into a dictionary ,says, a = {'a':'1','b':'2'} See also the ast.literal_eval function: http://docs.python.org/py3k/library/ast.html#ast.literal_eval Daniel
|
Pages: 1 Prev: xmlrpc and processes Next: simple renaming files program |