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'。如果不熟悉這個坑,那麼可能會導致程式碼運行出現問題。甚至是造成莫名其妙的類型轉換。

Tags: