在Python 3环境下,当我们把一个字符串写进 Redis 再读出来,会发现这个字符串变成了 bytes
型的数据:
import redis
client = redis.Redis()
client.set('hello', 'world')
word = client.get('hello')
print(word, type(word))
运行效果如下图所示:
一般情况下,我们只需要对 bytes
型的数据执行一下.decode()
方法,就可以让它重新变回字符串:
origin_word = word.decode()
print(origin_word, type(origin_word))
运行效果如下图所示:
但是,如果我们传入的数据是数字,执行 .decode()
方法以后,它就会变成字符串,如下图所示:
此时数字123
变成了字符串'123'
。如果不熟悉这个坑,那么可能会导致代码运行出现问题。甚至是造成莫名其妙的类型转换。