Python 转换unicode表情符号的字符串

Python 转换unicode表情符号的字符串,python,unicode,Python,Unicode,我有一个基本上代表unicode表情的字符串列表,例如: emoji[0] = 'U+270DU+1F3FF' emoji[0] = emoji[0].replace('U+', '\U000') SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-4: truncated \UXXXXXXXX escape 我想将这种“几乎”的unicode表情符号表示转换为其真实的表情符号

我有一个基本上代表unicode表情的字符串列表,例如:

emoji[0] = 'U+270DU+1F3FF'
emoji[0] = emoji[0].replace('U+', '\U000')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-4: truncated \UXXXXXXXX escape
我想将这种“几乎”的unicode表情符号表示转换为其真实的表情符号表示,以便我可以搜索包含这些表情符号的文本文档,例如:

emoji[0] = 'U+270DU+1F3FF'
emoji[0] = emoji[0].replace('U+', '\U000')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-4: truncated \UXXXXXXXX escape

我怎样才能做到这一点呢?

这是因为在
270D
中有4位数字,在
1F3FF
中有5位数字:

>e='U+270D'
>>>打印e.replace('U+','\U0000')。解码('unicode-escape'))
✍
>>>e=‘U+1F3FF’
>>>打印e.replace('U+','\U000')。解码('unicode-escape'))

使用可变数字表示法的解决方案:

>>重新导入
>>>e='U+270DU+1F3FF'
>>>def表情符号(匹配):
...     返回chr(int(匹配组(0)[2:],16))
>>>关于sub(r“U\+[0-9A-F]+”,表情化,e)
'✍