¿Cómo convertir tuple en string a tuple objeto?

En Python 2.7, tengo la siguiente cadena:

"((1, u'Central Plant 1', u'http://egauge.com/'), (2, u'Central Plant 2', u'http://egauge2.com/'))" 

¿Cómo puedo convertir esta cadena de nuevo a tuplas? He intentado usar split un par de veces pero es muy desordenado y en su lugar hace una lista.

Salida deseada:

 ((1, 'Central Plant 1', 'http://egauge.com/'), (2, 'Central Plant 2', 'http://egauge2.com/')) 

¡Gracias por la ayuda por adelantado!

Debe usar el método literal_eval del módulo ast , del cual puede leer más aquí .

 >>> 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 debería hacer el truco con seguridad .

P.EJ

 >>> 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/')) 

Ver esta respuesta para obtener más información sobre por qué no utilizar eval .

Utilizando 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