Python中split()处理含emoji等特殊字符时返回Unicode转义如何解决
问题原因
首先明确:split()方法本身没有对emoji做转义处理,你看到的转义序列只是Python打印列表对象时的默认展示逻辑:为了保证输出在所有环境下都可解析,默认会把非ASCII字符转换为Unicode转义序列显示,列表中存储的实际元素就是正常的emoji字符,你可以通过print(liste[0])验证,直接输出单个元素时就会显示为🥲。
解决方法
方法1:自定义列表打印格式
如果只是需要按预期格式输出列表,可以手动拼接输出字符串:
s = "🥲 🥲" liste = s.split() # 手动拼接为列表样式输出 print("['" + "', '".join(liste) + "']")
运行后直接输出 ['🥲', '🥲']
方法2:使用pprint模块关闭转义(Python 3.10+)
pprint 模块从Python 3.10版本开始支持escape参数,设置为False即可关闭Unicode转义展示:
from pprint import pprint s = "🥲 🥲" liste = s.split() pprint(liste, escape=False)
方法3:遍历输出单个元素
如果不需要严格的列表格式输出,直接遍历列表打印每个元素即可:
s = "🥲 🥲" liste = s.split() for emoji in liste: print(emoji)
内容的提问来源于stack exchange,提问作者Zorpubis
相关产品推荐
相关产品推荐

