Уведомления

Группа в Telegram: @pythonsu

#1 Март 9, 2009 20:30:30

vvivan
От:
Зарегистрирован: 2009-03-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

UnicodeDecodeError при разбиении строки на список

А вот если выводить несколько элементов, то не хочет….

	f=open('2', 'r+')
for line in f.readlines():
s=line.decode('utf-8','ignore')
d = s.split('|||')
if len(d)==29:
n-=1
if d[0].find(d[25])>-1 or d[25]=='-':
a=d[0]
else:
a=d[0],'(',d[25],')'
if d[1].find(d[27])>-1 or d[27]=='-':
b=d[1]
else:
b=d[1],'(',d[27],')'
print str(a).encode('utf-8','ignore')
Выдает ошибку…
(u'\u0425\u041a \u0421\u043f\u0430\u0440\u0442\u0430\u043a', '(', u'\u041c\u043e\u0441\u043a\u0432\u0430', ')')
Traceback (most recent call last):
File "/home/vladimir/Projects/Python/files2.py", line 36, in <module>
if __name__ == '__main__': main()
File "/home/vladimir/Projects/Python/files2.py", line 35, in main
print str(a).encode('utf-8','ignore')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-6: ordinal not in range(128)
Вот кусок вывода и ошибка…
В третьем питоне все ок, без плячсок с кодировками, а в двойке не хочет…



Офлайн

#2 Март 9, 2009 21:53:24

alexzander77
От:
Зарегистрирован: 2009-01-27
Сообщения: 46
Репутация: +  1  -
Профиль   Отправить e-mail  

UnicodeDecodeError при разбиении строки на список

vvivan
print str(a).encode('utf-8','ignore')
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-6: ordinal not in range(128)
str по использует кодек по умолчанию. Обычно это аскии .
попробуй совсем без СТР. я так думаю - проверить себя немогу .



Офлайн

#3 Март 9, 2009 21:57:36

alexzander77
От:
Зарегистрирован: 2009-01-27
Сообщения: 46
Репутация: +  1  -
Профиль   Отправить e-mail  

UnicodeDecodeError при разбиении строки на список

vvivan
print str(a).encode('utf-8','ignore')
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-6: ordinal not in range(128)
str по использует кодек по умолчанию. Обычно это аскии .
попробуй совсем без СТР. я так думаю - проверить себя немогу .



Офлайн

#4 Март 10, 2009 14:36:59

vvivan
От:
Зарегистрирован: 2009-03-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

UnicodeDecodeError при разбиении строки на список

без СТР он выдает ошибку… ‘tuple’ object has no attribute ‘encode’



Офлайн

#5 Март 10, 2009 15:54:40

Voland
От:
Зарегистрирован: 2009-03-06
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

UnicodeDecodeError при разбиении строки на список

Попробуй так:

 import string
f=open('2', 'r+')
for line in f:
d=string.split(unicode(line,'utf-8'),'|||')
print d



Офлайн

#6 Март 10, 2009 21:11:54

vvivan
От:
Зарегистрирован: 2009-03-08
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

UnicodeDecodeError при разбиении строки на список

так печатается строка вида u'\u041c\u0438'
Но! Если выводить не весь список, а только отдельные его элементы, то все работает (раньше нормально выводилось по 1 одному элементу, а по несколько не хотело). Большое спасибо всем за помощь!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version