[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. Или код молча создает моджибаке (поврежденные данные передаются дальше по конвейеру), если среда использует кодировку, несовместимую с жестко запрограммированной кодировкой.