python教程—如何在redis中存储复杂对象(使用redis-py)-Python实用宝典

python教程—如何在redis中存储复杂对象(使用redis-py)

hmset函数可以设置每个字段的值,但是我发现,如果值本身是一个复杂的结构化对象,那么hget返回的值就是一个序列化的字符串,而不是原始对象

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对象,除了手动解析每个字段之外,还有什么方法可以解决这个问题?

回答

您不能在Redis中创建嵌套结构,这意味着您不能(例如)在本地Redis散列映射中存储本地Redis列表。

如果您确实需要嵌套结构,那么您可能希望只存储JSON-blob(或类似的东西)。另一个选项是将“id”/key存储到另一个不同的redis对象作为map key的值,但这需要对服务器进行多次调用才能获得完整的对象。

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
2

发表评论