Python 如何从Dictionary';s值

Python 如何从Dictionary';s值,python,python-3.x,unicode,emoji,python-unicode,Python,Python 3.x,Unicode,Emoji,Python Unicode,Python新手,整天都在为此绞尽脑汁 我正在使用emojis的unicode值 按预期打印unicode值: print("\U0001f600") 屈服 >>> str(r'\U' + r'\U'.join(emojiDictionary["#️⃣"][0])) - almost there, but you don't need str (it already is a string), you need ast.literal_eval: from ast impo

Python新手,整天都在为此绞尽脑汁

我正在使用emojis的unicode值

按预期打印unicode值:

print("\U0001f600")
屈服

>>> 
str(r'\U' + r'\U'.join(emojiDictionary["#️⃣"][0]))
- almost there, but you don't need
str
(it already is a string), you need
ast.literal_eval
:

from ast import literal_eval
print(literal_eval(r'"\U' + r'\U'.join(emojiDictionary["#️⃣"][0])+'"'))
>
str(r'\U'+r'\U'.join(emojiDictionary[)#️⃣"][0])
-差不多了,但您不需要
str
(它已经是一个字符串),您需要
ast.literal\u eval

>>> a = ['00000023', '0000FE0F', '000020E3'] # list of values
>>> b = [int(i, 16) for i in a] # convert them to integers, base 16 since they were hex strings
>>> b
[35, 65039, 8419]
>>> c = [chr(i) for i in b] # get the characters for them
>>> c
['#', '️', '⃣']
>>> print(''.join(c)) # join those characters
#️⃣
>>> print(''.join(chr(int(i, 16)) for i in a)) #concise
#️⃣
>>>

然而,主要的问题是为什么?你已经有了表情符号作为键,为什么不直接打印它呢?这整本表情词典是怎么回事?

看起来值是一个以十六进制格式表示的32位数字列表。 这可能会帮你解决问题


你真是个天才,谢谢!这让我觉得我应该在几个小时前问你。我在这里玩了一些不同的东西,主要是为了学习。至于为什么我不打印字典键来检索表情符号——我遇到了一些问题,比如,当我打印一个由几个不同unicode值组成的表情符号时,它将分别打印每个值,而不是表情符号。这个问题似乎和这个问题一样难以解决,所以我想我只是选择了一个兔子洞。字典本身是基于情绪分析返回表情符号。大多数返回0.0,但有些不返回。另外,我也在玩基于其他值的返回。至于我为什么没有这样做他和我一样——我一个月前才开始学习,除了html、css和一些javascript之外没有任何经验,所以我和你在那个问题上一样迷茫。说真的,谢谢你的帮助!啊,你遇到了组合Unicode字符的问题。你可能对
Unicode数据感兴趣。规范化
函数。