I have the following dataset
'Fʀɪᴇɴᴅ',
'ᴍᴏᴍ',
'ᴍᴀᴋᴇs',
'ʜᴏᴜʀʟʏ',
'ᴛʜᴇ',
'ᴄᴏᴍᴘᴜᴛᴇʀ',
'ʙᴇᴇɴ',
'ᴏᴜᴛ',
'ᴀ',
'ᴊᴏʙ',
'ғᴏʀ',
'ᴍᴏɴᴛʜs',
'ʙᴜᴛ',
'ʟᴀsᴛ',
'ᴍᴏɴᴛʜ',
'ʜᴇʀ',
'ᴄʜᴇᴄᴋ',
'ᴊᴜsᴛ',
'ᴡᴏʀᴋɪɴɢ',
'ғᴇᴡ',
'ʜᴏᴜʀs',
'sᴏᴜʀᴄᴇ',
I want then into ASCII format using Python script for example:
Fʀɪᴇɴᴅ - FRIEND
ᴍᴏᴍ - MOM
I have tried encoding decoding but that doesn't work i also have tried this solution. but that doesn't solve my problem.
答案 0 :(得分:1)
Python没有提供将small caps字符直接转换为ASCII等价字符的方法。但是,可以使用str.translate来做到这一点。
要使用str.translate
,我们需要创建一个小写字母字符序数到ASCII字符的映射。
要获取序数值,我们可以构造每个字符的名称,然后从unicodedata数据库中获取字符并在其上调用ord。请注意,没有大写字母“ X”,在3.7之前的Python版本中,不存在小写字母“ Q”。
>>> from string import ascii_uppercase
>>> import unicodedata as ud
>>> # Filter out unsupported characters
>>> # Python < 3.7
>>> letters = (x for x in ascii_uppercase if x not in ('Q', 'X'))
>>> # Python >= 3.7
>>> letters = (x for x in ascii_uppercase if x != 'X')
>>> mapping = {ord(ud.lookup('LATIN LETTER SMALL CAPITAL ' + x)): x for x in letters}
一旦有了映射,我们就可以使用它来为str.translate
,str.maketrans创建转换表,然后执行转换。
>>> # Make as translation table
>>> tt = str.maketrans(mapping)
>>> # Use the table to "translate" strings to their ASCII equivalent.
>>> s = 'ᴍᴏɴᴛʜ'
>>> s.translate(tt)
'MONTH'