我有以下我正在尝试解决的问题。我有一个使用langdetect
以下代码检索的 iso-639 语言列表
def try_detect(cell):
try:
detected_lang = detect(cell)
except:
detected_lang = None
return detected_lang
Spotify['language'] = Spotify['artists'].apply(try_detect)
Spotify['language'] = Spotify['language'].str.upper()
Spotify['language'].unique()
返回
array(['DE', 'PL', 'ES', 'EN', 'NL', 'TR', 'FR', 'IT', 'SK', 'RO', 'SW',
'FI', 'AF', 'EL', 'ID', 'LT', 'CA', 'TL', 'PT', 'HR', 'RU', 'NO',
'DA', 'SL', 'CY', 'SQ', 'KO', 'SO', 'CS', 'ET', 'ZH-CN', 'SV',
'HU', 'LV', 'VI', 'JA', None, 'AR', 'TH', 'BG'], dtype=object)
尽管这样就足够了,但我希望在另一列中有完整的语言名称。但是,我似乎无法做到这一点。我知道
pycountry.languages.get(alpha_2='FR').name
返回French
。我试过了:
Languages = Spotify['language'].unique()
LANG = []
for lang in Languages:
Lang = pycountry.languages.get(alpha_2=lang).name
LANG.append(Lang)
但我不断收到错误:
AttributeError: 'NoneType' object has no attribute 'name'
我在那里不知所措。任何能让我走上正轨的帮助都将不胜感激。