Zastępowanie znaków innych niż ascii z ciągu znaków unicode w Pythonie

Jak mogę zastąpić znaki inne niż ascii z ciągu znaków unicode w Pythonie?

To są dane wyjściowe, które spectuję dla podanych wejść:

Música - > musica

Cartón - > carton

Caño -> cano

Myaybe z dict gdzie ' á 'jest kluczem, a' a ' wartością?

Author: Juanjo Conti, 2010-09-14

2 answers

Jeśli chcesz tylko zdegradować znaki akcentowane do ich nieakcentowanego odpowiednika:

>>> import unicodedata
>>> unicodedata.normalize('NFKD', u"m\u00fasica").encode('ascii', 'ignore')
'musica'
 21
Author: llasram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-13 22:07:46

Teraz, aby uzupełnić tę odpowiedź: Może się zdarzyć, że Twoje dane nie są w unicode (tzn. czytasz Plik z innym kodowaniem i nie możesz poprzedzać łańcucha znakiem "u"). Oto fragment, który może również działać (głównie dla tych, którzy czytają pliki w języku angielskim).

import unicodedata
unicodedata.normalize('NFKD',unicode(someString,"ISO-8859-1")).encode("ascii","ignore")
 7
Author: fiacobelli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-09 06:35:14