[u'String']
- текстовое представление списка, содержащего строку Unicode на Python 2.
Если вы запустите, print(some_list)
то это эквивалентно
print'[%s]' % ', '.join(map(repr, some_list))
созданию текстового представления объекта Python с типом list
, repr()
функция вызывается для каждого элемента.
Не путайте объект Python и его текстовое представление - repr('a') != 'a'
и даже текстовое представление текста представления различен: repr(repr('a')) != repr('a')
.
repr(obj)
возвращает строку, содержащую печатное представление объекта. Его цель - однозначное представление объекта, который может быть полезен для отладки, в REPL. Часто eval(repr(obj)) == obj
.
Чтобы избежать вызова repr()
, вы можете распечатать элементы списка напрямую (если все они являются строками Unicode), например: print ",".join(some_list)
- он печатает список строк, разделенных запятыми:String
Не кодируйте строку Unicode в байты с использованием жестко заданной кодировки символов, вместо этого печатайте Unicode напрямую . В противном случае код может потерпеть неудачу, потому что кодировка не может представлять все символы, например, если вы попытаетесь использовать 'ascii'
кодировку с символами, отличными от ascii. Или код молча создает моджибаке (поврежденные данные передаются дальше по конвейеру), если среда использует кодировку, несовместимую с жестко запрограммированной кодировкой.