python - 如何解码 Flask 中的 Redis 响应?

标签 python flask redis

我想在我的 Flask 应用程序中接收来自 Redis 的解码响应。

例如,当我使用 redis.hget 时,我收到

{
    b'a': b'1',
    b'b': b'2',
    b'c': b'3',
}

这对于我的用例来说并不是很理想,因为它要求我像这样使用 has 列表 my_hash[b'a']

我宁愿收到这样的回复:

{
    'a': '1',
    'b': '2',
    'c': '3',
}

有没有简单的方法让 python-redis 解码来自数据存储的所有响应?

最佳答案

只需制作一个小型自定义提供程序,在使用 from_url 函数配置数据存储时设置 decode_responses 参数。

class DecodedRedis(StrictRedis):
    @classmethod
    def from_url(cls, url, db=None, **kwargs):
        kwargs['decode_responses'] = True
        return StrictRedis.from_url(url, db, **kwargs)


redis = FlaskRedis.from_custom_provider(DecodedRedis, app)

关于python - 如何解码 Flask 中的 Redis 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33338801/

相关文章:

python - 将计算存储在 Flask 路由缓存中

flask - 如何在gunicorn中运行打包为pex的flask应用程序?

python - 使用 flask-aiohttp 的异步子进程

amazon-web-services - 使用 Cloudformation 创建新的 Elasticache Redis 实例时参数组合无效

node.js - 使用 Redis 作为 session 存储的 NodeJs 抛出异常

Redis 缓存跨区域共享

python - 如何让 Sublime Text 在 Windows 上读取 PYTHONPATH 环境变量

python - Python 中从逗号分隔的字符串中删除元素的有效方法

python - 根据某一行的某个值派生一个新的pandas列并应用直到下一个值再次出现

Python CSV DictReader 忽略列?