提问者:小点点

关于Python3.4.1客户端中的char b前缀连接到redis


我遇到了麻烦。我的代码如下。但是我不知道为什么在输出字符串“HelloPython”之前有一个字符“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?

共2个答案

匿名用户

这意味着这是一个字节字符串

您可以使用:

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

使用decode_responses=True创建unicode字符串。

匿名用户

b'HelloPython'是一个字节字符串-redis会在进入时自动为您编码一个unicode字符串,但在离开时解码它是您的工作。

最好显式编码和解码:

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