Найти - Пользователи
Полная версия: борьба с кодировками
Начало » Python для новичков » борьба с кодировками
1
xenon
Доброе время суток!!!
подскажите пожалуйста с решением проблемы:
есть словарь вида:
 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
Помогите пожалуйста, что я делаю не так, весь лоб уже об эти кодировки расколотил, а закона (правила) их применения не понял …
sp3
xenon
TypeError: ‘dict’ object is not callable
причем здесь кодировки?
xenon
Большое спасибо за помощь :-)
Разобрался в чем была ошибка: не правильно обращался к словарю, вот как надо:
Species[i,j]=Species_cod[numbers[4].decode('cp1251')]
т.е.
Species_cod[.....]
, а я писал
Species_cod(...)
т.е. обращался к функции, а не словарю

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

П.С. а тему надо переименовать, быть может: не правильная работа со словарем?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB