In Python 2.7, I have the following string:
"((1, u'Central Plant 1', u'http://egauge.com/'),
(2, u'Central Plant 2', u'http://egauge2.com/'))"
How can I convert this string back to tuples? I've tried to use split
a few times but it's very messy and makes a list instead.
Desired output:
((1, 'Central Plant 1', 'http://egauge.com/'),
(2, 'Central Plant 2', 'http://egauge2.com/'))
Thanks for the help in advance!
You should use the literal_eval
method from the ast
module which you can read more about here .
>>> import ast
>>> s = "((1, u'Central Plant 1', u'http://egauge.com/'),(2, u'Central Plant 2', u'http://egauge2.com/'))"
>>> ast.literal_eval(s)
((1, u'Central Plant 1', u'http://egauge.com/'), (2, u'Central Plant 2', u'http://egauge2.com/'))
ast.literal_eval
should do the trick— safely .
EG
>>> ast.literal_eval("((1, u'Central Plant 1', u'http://egauge.com/'),
... (2, u'Central Plant 2', u'http://egauge2.com/'))")
((1, u'Central Plant 1', u'http://egauge.com/'), (2, u'Central Plant 2', u'http://egauge2.com/'))
See this answer for more info on why not to use eval
.
Using eval:
s="((1, u'Central Plant 1', u'http://egauge.com/'), (2, u'Central Plant 2', u'http://egauge2.com/'))"
p=eval(s)
print p
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.