如何比较python中的表情符号

如何比较python中的表情符号,python,python-2.7,unicode,emoji,Python,Python 2.7,Unicode,Emoji,我有一组ics数据,我正试图用python解析它们。此日期使用emjois表示不同类型的事件。所以我试图在if语句中使用这些emjois来告诉它是什么类型的事件。我试着这样比较: if event == '✈️': do something here 当事件等于a✈️它不是真的。我猜这和编码有关,但我无法理解。任何帮助都将不胜感激请尝试先转换为字符串,然后对该字符串进行编码 #convert to unicode teststring = unicode(teststring, 'ut

我有一组ics数据,我正试图用python解析它们。此日期使用emjois表示不同类型的事件。所以我试图在if语句中使用这些emjois来告诉它是什么类型的事件。我试着这样比较:

if event == '✈️':
    do something here

当事件等于a
✈️它不是真的。我猜这和编码有关,但我无法理解。任何帮助都将不胜感激

请尝试先转换为字符串,然后对该字符串进行编码

#convert to unicode
teststring = unicode(teststring, 'utf-8')

#encode it with string escape
teststring = teststring.encode('unicode_escape')

#then run check on test string. 
if event == testString
  do #this code.

该特定字符表示为两个代码点。在Python 2中,您还需要声明源文件的编码,以便在源代码中使用非ASCII,并在事件和要比较的项中使用Unicode字符串:

#coding:utf8
event = u'\u2708\ufe0f'
if event == u'✈️':
    print 'match'
输出:

match
您的事件可能不是Unicode字符串。检查
类型(事件)
打印报告(事件)
以查看其实际内容

您可以比较非Unicode字符串,但它们必须以相同的方式编码。同样,需要使用打印报告(事件)
查看问题所在。理想情况下,将输入文本解码为Unicode,在代码中处理为Unicode,将其编码回字节以将文本写回数据库、文件、网络管道等


另外,切换到Python3,它有更好的Unicode处理。

我确实导入了表情模块,并进行了比较,正如您所显示的那样,它不能解析trueOk,请稍等。我要亲自尝试一下,看看是否能让它工作。我尝试了你的
U+2708
代码,但出现了以下错误:
selfParse.py:32:UnicodeWarning:Unicode相等比较无法将两个参数转换为Unicode-如果event==U'2708'
我想我需要将
event
转换为不知何故使用unicode?用实际的表情符号试试看,并将“替换为”(单引号,w/double),我还看到一些人在使用表情符号import unicode_emoji的
时这样尝试
if“✈️“==U”2708“:打印“找到匹配项”
,结果相同。在我的文本编辑器中,当我去掉表情符号周围的引号时,它会变成一个更小的平面和一个带方框的问号。如果我试着复制到这里,它只会变回emoji,我认为这只是一个语法问题。我不太熟悉python表情符号的用法。我知道这与语法/导入有关。请查看此链接,看看是否有帮助。基本上,您需要了解如何验证“表情符号”或unicode。