如何访问嵌套字典中的键?解决emoji库KeyError['en']问题
解决KeyError['en']问题的正确写法
你的代码存在两个关键问题:
- 循环变量命名为
emoji,和导入的emoji模块重名,导致后续无法正确调用模块属性 - 访问
EMOJI_DATA的方式错误,顶层键是表情字符(如🥇),每个键对应的值才是包含'en'字段的字典
修正后的代码如下:
import emoji txt = input('String: ') # 使用emoji_char作为循环变量,避免覆盖模块 for emoji_char, attr_dict in emoji.EMOJI_DATA.items(): if attr_dict['en'] == txt: print(f"匹配的表情:{emoji_char}") break else: print("未找到对应的表情")
补充说明
emoji.EMOJI_DATA.items()能同时取出表情字符(键)和它对应的属性字典(值),直接通过attr_dict['en']就能访问英文别名input()本身返回字符串,无需额外用str()转换- 加入
break可在找到匹配后终止循环,提升效率;else块处理无匹配的场景
如果你的需求是通过英文别名直接转成表情,也可以用模块自带的emojize方法,更简便:
import emoji txt = input('String: ') try: print(emoji.emojize(txt)) except: print("未找到对应的表情")
内容的提问来源于stack exchange,提问作者boric-acid
相关产品推荐
相关产品推荐

