这里我有这样的代码:
import emoji
txt = str(input('String: '))
for emoji in emoji.EMOJI_DATA:
if emoji.EMOJI_DATA['en'] == txt:
print('The emoji would be here')
使用该代码,我得到这个错误:Keyerror['en'],因为EMOJI_DATA中当然没有'en'
,所以,我怎么能访问这里的表情符号键呢?EMOJI_DATA = {
'🥇': {
'en' : ':1st_place_medal:',
'status' : emoji.STATUS["fully_qualified"],
'E' : 3,
'de': ':goldmedaille:',
'es': ':medalla_de_oro:',
'fr': ':médaille_d’or:',
'pt': ':medalha_de_ouro:',
'it': ':medaglia_d’oro:'
},
...
}
你的代码应该是这样的,因为你不能直接访问内部键
import emoji
txt = str(input('String: '))
for emoji in emoji.EMOJI_DATA:
if emoji.EMOJI_DATA['🥇']['en'] == txt:
print('The emoji would be here')
首先,您不需要遍历emoji.EMOJI_DATA
中的所有项。你可以使用更有效的lambda
。
import emoji
txt = ":1st_place_medal:"
emojiList = emoji.EMOJI_DATA
filteredList = list(filter(lambda x: x[1]["en"] == txt, emojiList.items()))
if(len(filteredList) > 0):
print("Emoji is ",filteredList[0][0])
print("Details are ",filteredList[0][1])
else:
print("Not Found")