python3之讀取redis數(shù)據(jù)帶有‘b’的問題
python3讀取redis數(shù)據(jù)帶有‘b’的問題
#encoding=utf-8
from redis import *
#讀取數(shù)據(jù)
d1=input("您輸入的數(shù)據(jù)是:")
#連接
r=StrictRedis(host='localhost',port=6379)
#寫
# pipe=r.pipeline()
# pipe.set('r1','hello')
# pipe.set('r2','world')
# pipe.execute()
#讀
#在python3的前面,有一個'b'代表的是bytes
#用以下方式解決
#注意,有值則進行編碼
#法1:
# temp=r.get('r1').decode()
# print(temp)
#法2:
# temp=r.get('r2')
# h1=str(temp,encoding='utf-8')
# print(h1)
#如果沒有值,則為None
s=r.get(d1)
print(s)
if s==None:
print('yes')
else:
print('no')
temp=s.decode()
print(temp)基本代碼
from redis import *
if __name__ == '__main__':
sr = StrictRedis(host='localhost', port=6379, db=0)
result=sr.set('name','python')
print(result)
result1 = sr.get('name')
print(result1)運行結(jié)果:
True
b'python'
這里我們存進去的是字符串類型的數(shù)據(jù),取出來卻是字節(jié)類型的,這是由于python3的與redis交互的驅(qū)動的問題,Python2取出來的就是字符串類型的。
為了得到字符串類型的數(shù)據(jù),你可以每次取出來decode一下,但是太繁瑣了,可以這樣設(shè)置:
sr = StrictRedis(host='localhost', port=6379, db=0,decode_responses=True)
即在連接數(shù)據(jù)庫的時候加上decode_responses=True即可
Python如何把redis取出的數(shù)據(jù)去掉b
解決辦法一
將鏈接轉(zhuǎn)換為字符串類型,使用如下命令
temp.decode()
解決辦法二
str(temp,encoding='utf-8')
解決辦法三
在連接redis時進行設(shè)置,避免頻繁地進行轉(zhuǎn)換操作
StrictRedis(host='localhost', port=6379, db=0,decode_responses=True)
原因
Python3與redis交互驅(qū)動上存在問題,如果使用python2則不會出現(xiàn)這樣的問題。
同樣在python3打印數(shù)據(jù)中b'開頭的代表的是bytes類型數(shù)據(jù)。
這個問題一定要牢記,避免在程序進行判斷時出現(xiàn)問題而花費較多時間去排查。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python神經(jīng)網(wǎng)絡(luò)學習數(shù)據(jù)增強及預處理示例詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)學習數(shù)據(jù)增強及預處理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
詳解pycharm的python包opencv(cv2)無代碼提示問題的解決
這篇文章主要介紹了詳解pycharm的python包opencv(cv2)無代碼提示問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
Python識別快遞條形碼及Tesseract-OCR使用詳解
這篇文章主要介紹了Python識別快遞條形碼及Tesseract-OCR使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07
pip安裝python庫時報Failed?building?wheel?for?xxx錯誤的解決方法
最近在使用pip安裝python的時候遇到些問題,所以下面這篇文章主要給大家介紹了關(guān)于pip安裝python庫時報Failed?building?wheel?for?xxx錯誤的解決方法,需要的朋友可以參考下2023-01-01

