Python / Redis – O que é o caracter ‘b’ no retorno do redis (About char b prefix in Python client connect to redis)

redis_python

b’Hello Python’

Esse tipo de retorno indica que o valor é um byte de string – o redis irá codificar automaticamente a string unicode para você na gravação, mas é seu trabalho decodificá-lo ao pega-lo.

>>> redisClient = redis.Redis(host=’0.0.0.0′,port=6379)
>>> redisClient.set(‘test_redis’, ‘Hello Python’)
>>> redisClient.get(‘test_redis’)
b’Hello Python’

Podemos decodificar seu valor de duas maneiras:

A primeira seria logo ao abrir a conexão definir a propriedade decode_responses

>>> redisClient = redis.Redis(host=’0.0.0.0′,port=6379, decode_responses=True)
>>> redisClient.get(‘test_redis’)
‘Hello Python’

A outra maneira é chamar o método .decode no retorno do .get()

>>> redisClient = redis.Redis(host=’0.0.0.0′,port=6379)
>>> redisClient.get(‘test_redis’).decode()
‘Hello Python’

Uma observação importante:
Podemos configurar o charset na conexão, no decode ou até mesmo no encode:

>>> redisClient = redis.Redis(host=’0.0.0.0′,port=6379, charset=’utf-8′, decode_responses=True)

>>> redisClient.set(‘test_redis’, ‘Hello Python’.encode(‘utf-8′))

>>> redisClient.get(‘test_redis’).decode(‘utf-8)

Help DEV – Analista desenvolvedor Java / Android

http://helpdev.com.br/zarelli

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>