在python中通過(guò)redis hset存儲(chǔ)字典時(shí),必須主動(dòng)把字典通過(guò)json.dumps()序列化為字符串后再存儲(chǔ),
不然hget獲取后將無(wú)法通過(guò)json.loads()反序列化為字典
序列化存儲(chǔ)
1
2
3
4
|
r = redis_conn() r.hset( 'wait_task' , 'one' , json.dumps({ 'project' : 'india' , 'total_size' : '15.8 MB' })) r.hset( 'wait_task' , 'two' , json.dumps({ 'project' : 'india' , 'total_size' : '15.8 MB' })) r.hset( 'wait_task' , 'three' , json.dumps({ 'project' : 'india' , 'total_size' : '15.8 MB' })) |
反序列化讀取
1
2
3
|
for k in r.hkeys( 'wait_task' ): d = r.hget( 'wait_task' , k) print (json.loads(d)) |
輸出
1
2
3
|
{ 'project' : 'india' , 'total_size' : '15.8 MB' } { 'project' : 'india' , 'total_size' : '15.8 MB' } { 'project' : 'india' , 'total_size' : '15.8 MB' } |
補(bǔ)充知識(shí):python redis 存string 取 string
看代碼吧~
1
2
3
4
5
6
7
|
DB_REDIS = { 'host' : localhost, 'port' : 6379 , 'password' : 'pwd&&1' , 'db' : 1 , 'decode_responses' : True } |
python3使用時(shí),給客戶(hù)端配置'decode_responses': True
就能保證存取的都是string,而不是想存string,結(jié)果卻是bytes!!!
以上這篇python redis存入字典序列化存儲(chǔ)教程就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/chengd/p/9836605.html