Python:用“常规”替换最小化的特殊字符

Python: replace minimized special character with `regular` alternative

在给定的字符串列表中:

["duplex 4 pièces 84 m²", "zapatos nº 37", "toyota rav4 3ª serie 2011"]

需要'unminimize'个字符,即² -> 2º -> oª -> a等(可能还有其他最小化字符)。

我试图找到一种方法来做到这一点 w/o 对所有可能的替换情况进行硬编码。任何建议将不胜感激。

unidecode 模块似乎有效:

>>> import unidecode
>>> unidecode.unidecode('² ª º')
'2 a o'

还有unicodedata模块:

>>> import unicodedata
>>> unicodedata.normalize('NFKD', '² ª º')
'2 a o'