Подтвердить что ты не робот

О префиксе char b в клиенте Python3.4.1 подключиться к redis

Я столкнулся с проблемой. Мой код ниже. Но я не знаю, почему перед выходной строкой "Hello Python" есть char 'b.

>>> 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?
4b9b3361

Ответ 1

b'Hello Python' является байтовой строкой - redis будет автоматически кодировать строку unicode для вас на пути, но это ваша задача, чтобы декодировать ее на выходе.

Лучше явно кодировать и декодировать:

>>> redisClient.set('test_redis', 'Hello Python'.encode('utf-8'))
>>> redisClient.get('test_redis').decode('utf-8')
'Hello Python'

Ответ 2

Это означает, что байтовая строка

Вы можете использовать:

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

с помощью decode_responses=True для создания строки в Юникоде.