将redis hash转换为python dict?

时间:2014-11-23 12:53:07

标签: python string redis hash

假设我有一个python dict aa = {"name": "nilesh", "age":29} 当我将它存储在redis散列中时,所有数据类型都将更改为字符串。

import redis
r = redis.StrictRedis()
r.hmset("nilesh_123", aa)
bb = r.hgetall("nilesh_123")

现在bb来自{'age': '29', 'name': 'nilesh'}。是否有任何pythonic方式将此哈希返回值再次转换为python dict格式?我看到的一种方法是在某处存储字典值的所有数据类型,然后在通过迭代redis哈希值获得该哈希值时再次转换它们,但我正在寻找更好的pythonic解决方案。

我可以将dict作为pickle对象存储在redis字符串中然后使用pickle再次加载它,但我更感兴趣的是使用散列与字符串比较。

2 个答案:

答案 0 :(得分:-1)

 {'age': '29', 'name': 'nilesh'} 

是JSON格式,尝试寻找可以将JSON转换为python dict的工具,如:

Converting JSON into Python dict

答案 1 :(得分:-1)

好吧,我不会说pythonic方式,但

mydict = eval("{'age': '29', 'name': 'nilesh'}")

或(稍微)更好ast.literal_eval,有些人说eval is evil