2010-10-07 8 views
7

Tengo una tupla.Tuple en la cadena

tst = ([['name', u'bob-21'], ['name', u'john-28']], True) 

Y quiero convertirlo en una cadena ..

print tst2 
"([['name', u'bob-21'], ['name', u'john-28']], True)" 

lo que es una buena manera de hacer esto?

Gracias!

Respuesta

14
tst2 = str(tst) 

Ej:

>>> tst = ([['name', u'bob-21'], ['name', u'john-28']], True) 
>>> tst2 = str(tst) 
>>> print tst2 
([['name', u'bob-21'], ['name', u'john-28']], True) 
>>> repr(tst2) 
'"([[\'name\', u\'bob-21\'], [\'name\', u\'john-28\']], True)"' 
+0

Gracias Adam. ¡Pensé en usar str pero nunca pensé que funcionaría! – Dais

4

Aunque me gusta la sugerencia de Adam como str(), estaría inclinando hacia repr() lugar, dado el hecho de que están buscando de forma explícita para una representación pitón-sintaxis similar al de la objeto. Juzgando help(str), su conversión de cadena para una tupla podría terminar definida de manera diferente en versiones futuras.

class str(basestring) 
| str(object) -> string 
| 
| Return a nice string representation of the object. 
| If the argument is a string, the return value is the same object. 
... 

A diferencia de help(repr):

repr(...) 
    repr(object) -> string 

    Return the canonical string representation of the object. 
    For most object types, eval(repr(object)) == object. 

En la práctica de hoy y el medio ambiente, sin embargo, que habría poca diferencia entre los dos, a fin de utilizar lo mejor describa su necesidad - algo que se puede alimentar de nuevo a eval(), o algo destinado al consumo del usuario.

>>> str(tst) 
"([['name', u'bob-21'], ['name', u'john-28']], True)" 
>>> repr(tst) 
"([['name', u'bob-21'], ['name', u'john-28']], True)"