Bytes 陷阱, Redis 數據類型的一個小坑
- 2019 年 11 月 14 日
- 筆記
在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'。如果不熟悉這個坑,那麼可能會導致程式碼運行出現問題。甚至是造成莫名其妙的類型轉換。

