python - 如何在 Redis 缓存中附加字典?
问题描述
我想在 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
写入 Redis(覆盖)并且.append()
需要 a key,val
。
如何在 Redis 上编写/附加两个字典并检索它们?list_of_dict
解决方案
分别设置键和值。按以下方式编写代码:
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")))
推荐阅读
- python - OpenCV 错误:(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
- javascript - 匹配具有唯一数字的字母数字单词(NOT NUMERIC-ONLY words)
- angular - ngx-daterangepicker 没有在生产中工作
- python - 子模块导入在 Google Colab 上不起作用
- php - 如何在PHP中将所有文件(不使用副本)和文件夹从一个文件夹移动到另一个S3存储桶,不能使用复制功能
- android - Android 应用程序在启动时卡住 - 显示白屏
- amazon-web-services - 无法使用 s3 和 cloudfront 访问托管在 aws 上的 Https 网站
- xcode - 预处理器宏无法按预期工作
- json - 我该如何处理飞镖投掷问题?
- sql - 将字段连接回主表的自定义表