You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问嵌套字典中的键?解决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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:50:17