在python中通過redis hset存儲字典時,必須主動把字典通過json.dumps()序列化為字符串后再存儲,
不然hget獲取后將無法通過json.loads()反序列化為字典
序列化存儲
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' } |
補充知識: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使用時,給客戶端配置'decode_responses': True
就能保證存取的都是string,而不是想存string,結果卻是bytes!!!
以上這篇python redis存入字典序列化存儲教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/chengd/p/9836605.html