hmset函数可以设置每个字段的值,但是我发现如果值本身是一个复杂的结构化对象,那么hget返回的值是一个序列化字符串,而不是原始对象
例如
images= [{'type':'big', 'url':'....'},
{'type':'big', 'url':'....'},
{'type':'big', 'url':'....'}]
redis = Redis()
redis.hset('photo:1', 'images', images)
i = redis.hget('photo:1', 'images')
print type(i)
i的类型是一个字符串,而不是一个python对象,除了手动解析每个字段之外,还有什么方法可以解决这个问题吗?
JSON示例:
Python3:
不能在Redis中创建嵌套结构,这意味着不能(例如)将本机Redis列表存储在本机Redis散列映射中。
如果您真的需要嵌套结构,您可能只需要存储一个JSON blob(或类似的东西)。另一个选项是将另一个redis对象的id/键存储为映射键的值,但这需要多次调用服务器才能获得完整的对象。
实际上,可以使用内置模块pickle将python对象存储在redis中。
这是一个例子。
相关问题 更多 >
编程相关推荐