web-dev-qa-db-ja.com

Python3.4.1クライアントがredisに接続する場合のchar bプレフィックスについて

以下のコードに問題が発生しましたが、出力文字列 "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?
39
Zhi Su

b'Hello Python'はバイト文字列です-redisは途中でUnicode文字列を自動エンコードしますが、途中でデコードするのはあなたの仕事です。

明示的にエンコードおよびデコードする方が良い:

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