Форум сайта python.su
0
Драсти все! Не могу получить из парсера.
получаю из парсера текст таким образом:
link_topic.contents или link_topic.contents.string соответственно тип у получаемого значения ‘bs4.element.NavigableString’ а вот сделать из него unicode строку не выходит понятно, что contents.encode('utf-8') делает просто строку, а как мне получить просто unicode? парсер хранит и так в уникоде все но дотянуться не могу. Помогите пожайлуста
Офлайн
0
пока писал вопрос понял ответ используй unicode() идиот!
Офлайн
14
content.decode()
Логика такая: дефолт - внутреннее представление питона (юникод). Из него кодируют и в него декодируют. Кодированное представление - это уже сериализованная байтовая строка в какой-то кодировке (cp1251, utf8, даже ucs-16), которую можно писать в файл/передавать по сети итд.
Отредактировано odnochlen (Авг. 12, 2012 15:08:20)
Офлайн
1
mrtwisterне используй unicode() :
пока писал вопрос понял ответ используй unicode() идиот!
cpu@home-main:~$ python Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> a = 'Привет, мир' >>> unicode(a) Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
Офлайн
72
cpuУгу, а еще два параметра у unicode видимо для красоты.mrtwisterне используй unicode()
пока писал вопрос понял ответ используй unicode() идиот!
unicode не жретъ кириллицу. Немецкие умляуты и прочие там диакритические символы, впрочем, тоже не жретъ. Используй силу .encode(), .decode(), Люк.
unicode([object[, encoding[, errors]]])
Офлайн