python 将表情符号转换为 HTML 十进制

python convert emoji to HTML decimal

我有一个使用 Twitter public API 的 Django 应用程序。

应用程序收到的推文包含一些表情符号,我想将其转换为 HTML 等值的十进制。

搜索 python emoji 我找到了两个库(emoji_unicodepyemoji)。

我正在使用以下两个库来获取推文正文中包含的表情符号的十进制值;

import emoji_unicode, pyemoji
def emoji_callback(e):
    t = pyemoji.encode(e.unicode).replace('\u','')
    return "&#%s;" % str(int(t, 16))
emoji_unicode.replace(u'Time to ⛽ ',emoji_callback)

前面的例子工作正常,但对于其他一些表情符号它不起作用,它会抛出一个 invalid literal for int() with base 16 异常。例如下面的代码不起作用。

emoji_unicode.replace(u'Time to ',call)

问题

1- 是否有更简单的方法来获取推文正文中表情符号的 HTML 小数点而不是此处实现的方法?

2- 如果不是,我该如何解决该异常并让代码适用于所有表情符号?

这样的事情可能会有所帮助:)

def emoji_calback(e):
    '&#x{0};'.format(e.unicode.encode('unicode_escape').decode('utf8').lstrip('\U0u'))

您可以使用类似的东西:

pyemoji.entities('Hey ')

这个 returns 一个 unicode string 包含表情符号的 HTML 十进制代码。 它 returns 一个像这样的 unicode 字符串:

u'Hey 😀'