ERROR Invalid input of type: 'bool'. Convert to a bytes, string, int or float first.


一個奇葩的錯誤

  1. 公司的主項目是17年開始開發,有一個微服務中,用的python的redis客戶端還是2.X的
  2. 最近公司把所有微服務的py-redis都升級到3.5.x
  3. 升級之后,整個項目所有功能都運行正常,測試也沒有發現有什么問題
  4. 兩天有用戶發現有一個服務運行一直失敗,查看日志,在運行任務報了一個錯誤 ERROR Invalid input of type: 'bool'. Convert to a bytes, string, int or float first.
  5. 因為是一個多層級的函數調用,有多層級的try ,於是一層一層,把try 臨時取消,最后才定位到
  6. redis.set(key, True)

原因和解決辦法

1.是python-redis 升級到3.x后,僅接受用戶數據為字節、字符串或數字(整數,長整數和浮點數)。
2. 在2.x的時候,可以直接在value中存Python的類型,如字典和數組以及boolean型
3. 解決辦法,修改redis.set(key, 1)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM