Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

About char b prefix in Python3.4.1 client connect to redis

Tags:

python

redis

I am run into trouble .My code below.But I do not know why there is a char 'b' before output string "Hello Python".

>>> import redis >>> redisClient = redis.StrictRedis(host='192.168.3.88',port=6379) >>> redisClient.set('test_redis', 'Hello Python') True >>> value = redisClient.get('test_redis') >>> print(value) b'Hello Python' //why char 'b' output? 
like image 925
Zhi Su Avatar asked Sep 09 '14 12:09

Zhi Su


People also ask

What is B in Redis?

It means it's a byte string. You can use: redis.StrictRedis(host="localhost", port=6379, charset="utf-8", decode_responses=True) using decode_responses=True to make a unicode string. Follow this answer to receive notifications.


2 Answers

It means it's a byte string

You can use:

redis.StrictRedis(host="localhost", port=6379, charset="utf-8", decode_responses=True) 

using decode_responses=True to make a unicode string.

like image 142
mickeyandkaka Avatar answered Oct 16 '22 09:10

mickeyandkaka


b'Hello Python' is a byte string - redis will auto-encode a unicode string for you on the way in, but it's your job to decode it on the way out.

Better to explicitly encode and decode:

>>> redisClient.set('test_redis', 'Hello Python'.encode('utf-8')) >>> redisClient.get('test_redis').decode('utf-8') 'Hello Python' 
like image 34
Eric Avatar answered Oct 16 '22 08:10

Eric