[u'String']
es una representación de texto de una lista que contiene una cadena Unicode en Python 2.
Si ejecuta print(some_list)
entonces es equivalente a
print'[%s]' % ', '.join(map(repr, some_list))
es decir, para crear una representación de texto de un objeto Python con el tipo list
, se llama a la función repr()
para cada elemento.
No se debe confundir un objeto Python y su representación de texto - repr('a') != 'a'
e incluso la representación de texto de la representación de texto difiere: repr(repr('a')) != repr('a')
.
repr(obj)
devuelve una cadena que contiene una representación imprimible de un objeto. Su objetivo es ser una representación inequívoca de un objeto que puede ser útil para la depuración, en un REPL. A menudo eval(repr(obj)) == obj
.
Para evitar llamar repr()
, podría imprimir directamente elementos de la lista (si es que son todas las cadenas Unicode), por ejemplo: print ",".join(some_list)
-es imprime una lista separada por comas de las cuerdas: String
No te codificar una cadena Unicode de bytes utilizando una codificación de caracteres codificados, imprime Unicode directamente en su lugar. De lo contrario, el código puede fallar porque la codificación no puede representar todos los caracteres, por ejemplo, si intenta utilizar la codificación 'ascii'
con caracteres que no sean ASCII. O el código produce silenciosamente mojibake (los datos corruptos se pasan más allá en una interconexión) si el entorno usa una codificación que es incompatible con la codificación codificada.
Brillante. Gracias. Disculpas por el error tipográfico – gnuchu
En realidad, no tiene que hacer la codificación, porque el OP solo está viendo la repetición de cadena porque así es como ve algo cuando imprime una lista.soup [0] será suficiente para mostrar str en lugar de repr, mostrando el contenido de la cadena y no el modificador de comillas y unicode. – ironfroggy
No debe codificar el texto representado como Unicode en bytes en la mayoría de los casos: debe imprimir Unicode directamente en Python: ['print (',' .join ([u'ABC ', u' ... '])) '] (http://stackoverflow.com/a/36891685/4279) – jfs