2015-10-26 56 views
1

我想在我的燒瓶應用程序中接收來自redis的解碼響應。如何在Flask中解碼Redis響應?

當我使用redis.hget例如,我收到

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

這不是一個真正理想的我的使用情況,因爲它要求我使用了列表,像這樣my_hash[b'a']

我寧願收到答覆是這樣的:

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

有一個簡單的辦法有蟒蛇,Redis的解碼從數據存儲的所有迴應?

+0

我知道你在嘗試自我回答,但問題仍然需要站在自己的位置。請[編輯]包含您遇到的問題的具體示例以及您想要的內容。另外,在Python中沒有''''語法,它可以是一個字節串(默認爲2,'3'中的b''')或unicode字符串('u'''爲2,默認爲3)。 – davidism

+0

@davidism好吧我添加了一個例子,讓我知道它是否符合你的想法 – andychase

回答

2

當使用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)