如何将redis哈希密钥保存/获取为unicode?

时间:2016-11-04 17:53:09

标签: python unicode hash redis

当我从redis获得哈希映射键:值时,结果如下:

hmgetall {'<a href="/topic/\xd8\xb1\xd8\xaf\xdb\x8c\xd8\xb3-\xd8\xaa\xd8\xb3\xd8\xaa">\xd8\xb1\xd8\xaf\xdb\x8c\xd8\xb3 \xd8\xaa\xd8\xb3\xd8\xaa</a>': '1'}

虽然它在python中保存为unicoe。

所以我想知道如何将散列密钥保存为unicode,以便可以将其与unicode字符串进行比较?

我希望将密钥保存到它的unicode格式中:

   key =  '<a href="/topic/\u0631\u062f\u06cc\u0633-\u062a\u0633\u062a">\u0631\u062f\u06cc\u0633 \u062a\u0633\u062a</a>'

或者,我希望能够将密钥转换为\xd8\xb1\xd8\xaf\...格式,以便我可以将其与redis&#39;进行比较。保存密钥。

我看过the docs,却找不到有关此事的提示。

1 个答案:

答案 0 :(得分:1)

假设您正在使用Python 2,并且键/值被编码为utf-8:

>>> redis_key = '<a href="/topic/\xd8\xb1\xd8\xaf\xdb\x8c\xd8\xb3-\xd8\xaa\xd8\xb3\xd8\xaa">\xd8\xb1\xd8\xaf\xdb\x8c\xd8\xb3 \xd8\xaa\xd8\xb3\xd8\xaa</a>'
>>> redis_key.decode('utf-8')
u'<a href="/topic/\u0631\u062f\u06cc\u0633-\u062a\u0633\u062a">\u0631\u062f\u06cc\u0633 \u062a\u0633\u062a</a>'

编码现有密钥:

>>> key = u'<a href="/topic/\u0631\u062f\u06cc\u0633-\u062a\u0633\u062a">\u0631\u062f\u06cc\u0633 \u062a\u0633\u062a</a>'
>>> key.encode('utf-8')
'<a href="/topic/\xd8\xb1\xd8\xaf\xdb\x8c\xd8\xb3-\xd8\xaa\xd8\xb3\xd8\xaa">\xd8\xb1\xd8\xaf\xdb\x8c\xd8\xb3 \xd8\xaa\xd8\xb3\xd8\xaa</a>'