Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 13, 2012 22:47:29

xenon
От:
Зарегистрирован: 2010-12-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

борьба с кодировками

Доброе время суток!!!
подскажите пожалуйста с решением проблемы:
есть словарь вида:

 Species_cod={u'Б':3000, u'Е':2000, u'ОЛС':5000, u'ОЛЧ':6000, u'ОС':4000, u'С':1000, 0:0} 
также есть файл (.txt), в котором одна из колонок составляет буквы, перечисленные в словаре.
я считываю строку из файла, вычлиняю из нее нужную мне букву (из нужной колонки) и хочу заменить ее на значение из словаря, но тут встает проблема с кодировкой.
Попробовал перекодировать букву из файла так:
species=numbers[4].decode('cp1251') 
на экран выводит читабельно, но дальше для записи в матрицу значений по словарю:
Species[i,j]=Species_cod(species)
не работает, пишет ошибку:
 ОС <type 'unicode'>
Traceback (most recent call last):
File "C:\Python27\grid_10m.py", line 45, in <module>
Species[i,j]=Species_cod(species) # ╨║╨░╨║-╤В╨╛ ╨┐╨╡╤А╨╡╨▓╨╛╨┤╨╕╤В╤М ╨▓ ╤З╨╕
╤Б╨╗╨╛╨▓╨╛╨╡ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╡ ╤З╨╡╤А╨╡╨╖ ╤И╨╕╤Д╤А
TypeError: 'dict' object is not callable
Помогите пожалуйста, что я делаю не так, весь лоб уже об эти кодировки расколотил, а закона (правила) их применения не понял …



Мыши плакали, кололись, но продолжали жрать кактус …

Отредактировано xenon (Апрель 13, 2012 22:49:48)

Офлайн

#2 Апрель 14, 2012 00:00:58

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

борьба с кодировками

xenon
TypeError: ‘dict’ object is not callable
причем здесь кодировки?



Офлайн

#3 Апрель 14, 2012 07:37:58

xenon
От:
Зарегистрирован: 2010-12-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

борьба с кодировками

Большое спасибо за помощь :-)
Разобрался в чем была ошибка: не правильно обращался к словарю, вот как надо:

Species[i,j]=Species_cod[numbers[4].decode('cp1251')]
т.е.
Species_cod[.....]
, а я писал
Species_cod(...)
т.е. обращался к функции, а не словарю

Еще раз спасибо вам за помощь, а мне двойка за невнимательность!

П.С. а тему надо переименовать, быть может: не правильная работа со словарем?



Мыши плакали, кололись, но продолжали жрать кактус …

Отредактировано xenon (Апрель 14, 2012 07:38:55)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version