我想在Redis缓存中添加一本字典。
对于在Redis中添加一个字典,我没有任何问题,但是我不能在中添加几个字典,但是不能。
下面是一个例子:
import redis
cli = redis.Redis('localhost')
list_of_dict = [ # dummy
{
'tags': {'module': 'destructor', 'station': 'SNMP'},
'metric_name': 'destructor',
'value': -8555,
'time': '2018-11-13T15:25:07'
},
{
'tags': {'module': 'voltage', 'station': 'SNMP'},
'metric_name': 'voltage',
'value': 222,
'time': '2018-11-13T15:25:09'
}
]
from pprint import pprint
for ld in list_of_dict:
cli.hmset("pythonDict", ld)
# conn.append(key, val) # Needs a key value.
pprint(cli.hgetall("pythonDict"))在上面的代码片段中,.hmset()只将最后一个元素/ list_of_dict的dict写入Redis (覆盖),.append()需要一个key,val。
如何在Redis上编写/追加两本字典( of list_of_dict )并检索它们?
发布于 2020-04-16 04:29:28
两解
1.使用json
import json
cli.set("pythonDict", json.dumps(list_of_dict))
print(json.loads(cli.get("pythonDict")))2.使用泡菜
import pickle
cli.set("pythonDict", pickle.dumps(list_of_dict))
print(pickle.loads(cli.get("pythonDict")))如果你的字典键不是字符串,你应该使用泡菜。
发布于 2018-11-13 14:08:41
分别设置键和值。以下列方式编写代码:
for key,val in list_of_dict:
cli.hset("pythonDict", key, val)
pprint(cli.hgetall("pythonDict"))如果要按原样存储数组并检索值,请使用json包。以下是一个样本:
import json
cli.set("pythonDict", json.dumps(list_of_dict))
pprint(json.loads(cli.get("pythonDict")))发布于 2018-11-14 06:53:16
https://stackoverflow.com/questions/53282674
复制相似问题