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
#用以下方式解決
#注意,有值則進(jìn)行編碼
#法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)運(yùn)行結(jié)果:
True
b'python'
這里我們存進(jìn)去的是字符串類型的數(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時進(jìn)行設(shè)置,避免頻繁地進(jìn)行轉(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ù)。
這個問題一定要牢記,避免在程序進(jìn)行判斷時出現(xiàn)問題而花費(fèi)較多時間去排查。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python?flask框架中多種查詢參數(shù)的獲取方式
這篇文章主要介紹了pythonflask框架的生命周期以及多種查詢參數(shù)的獲取方式,文章通過代碼示例和圖文講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-03-03
python獲取當(dāng)前計算機(jī)cpu數(shù)量的方法
這篇文章主要介紹了python獲取當(dāng)前計算機(jī)cpu數(shù)量的方法,涉及Python操作計算機(jī)硬件的技巧,代碼簡單易懂,非常具有實(shí)用價值,需要的朋友可以參考下2015-04-04
Numpy數(shù)組轉(zhuǎn)置的兩種實(shí)現(xiàn)方法
下面小編就為大家分享一篇Numpy數(shù)組轉(zhuǎn)置的兩種實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python實(shí)現(xiàn)PyPDF2處理PDF文件的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)PyPDF2處理PDF文件的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
PyQt5實(shí)現(xiàn)讓QScrollArea支持鼠標(biāo)拖動的操作方法
今天小編就為大家分享一篇PyQt5實(shí)現(xiàn)讓QScrollArea支持鼠標(biāo)拖動的操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06

