У меня есть эта функция:KeyError при использовании не-ASCII символов в качестве ключей в словаре питона
#!/usr/bin/python
# coding=UTF-8
def filt(word):
dic = {'á':'a','é':'e','í':'i','ó':'o','ú':'u'}
new = ''
for l in word:
new = new + dic[l]
return new
Но когда я вызываю функцию для некоторой строки (например, «Árvore») и запустить сценарий, я получаю это:
Traceback (most recent call last): File "filt.py", line 11, in print filt("árvore") File "filt.py", line 8, in filt new = new + dic[l] KeyError: '\xc3'
Что случилось?
Для строки юникода вам нужно '' u "' перед строкой: ex: 'u'á'' или' new = u'''. –
, какую версию python вы используете? На python 3 он работает без потерь, меняя dic [l] на dic.get (l, l) – Wli
Хорошо, ваш вызов печати делает очевидным, что это py2. Синь дал вам ответ – Wli