当前位置: 首页 > article >正文

【python+Redis】hash修改

文章目录

  • 前请详解
  • 一、关于Update
    • 1. 语法
    • 2. 代码示例
  • 二、完整代码

前请详解

Redis库数据

keyvalue
1{“id”: 1, “name”: “xxx”, “age”: “18”, “sex”: “\u7537”}
2{“id”: 2, “name”: “xxx”, “age”: “18”, “sex”: “\u5973”}
3{“id”: 3, “name”: “xxx”, “age”: “18”, “sex”: “\u7537”}

我们知道r.hset能够新增和修改数据,但这个修改是有局限性的
如果单用他的话,我们的数据就会缺少字段

例如:
r.hset(hash,2,{“id”:2,“name”:“world”})

返回:

keyvalue
1{“id”: 1, “name”: “xxx”, “age”: “18”, “sex”: “\u7537”}
2{“id”: 2, “name”: “world”}

一、关于Update

此时我们发现他的值是字典类型
而在 Python 中,update() 是字典对象的方法,用于将一个字典中的键值对更新到另一个字典中。它可以实现字典的合并和更新操作

1. 语法

other ={"a":1}
dict.update(other)

update() 方法将 other 中的键值对添加到当前字典中,如果键已存在,则将对应的值进行更新。

2. 代码示例

my_dict = {'a': 1, 'b': 2}
other_dict = {'b': 3, 'c': 4}
 
my_dict.update(other_dict)
print(my_dict)

输出:

{'a': 1, 'b': 3, 'c': 4}

这正好吻合我们的需求,将其他字段继承了下来,而且修改了需要的参数

二、完整代码

def upd_hv(hash,params):
    if params.get("id",False):
        if r.hget(hash,params["id"]):
            da = json.loads(r.hget(hash,params["id"]))
            da.update(params)
            r.hset(hash,da["id"],json.dumps(da))
            return True
        else:
            raise NameError("redis数据不存在")
    else:
        raise NameError("参数id不存在")
upd_params = {"id":2,"name":"world"}
upd_hv("hash_stu",upd_params)

结果:

keyvalue
1{“id”: 1, “name”: “xxx”, “age”: “18”, “sex”: “\u7537”}
2{“id”: 2, “name”: “world”, “age”: “18”, “sex”: “\u5973”}
3{“id”: 3, “name”: “xxx”, “age”: “18”, “sex”: “\u7537”}

http://www.kler.cn/news/359516.html

相关文章:

  • 真空探针台选型需知
  • Spring Boot:如何实现JAR包的直接运行
  • 首个统一生成和判别任务的条件生成模型框架BiGR:专注于增强生成和表示能力,可执行视觉生成、辨别、编辑等任务
  • Android Studio Ladybug指定ndk版本
  • python excel如何转成json,并且如何解决excel转成json时中文汉字乱码的问题
  • Mac 安装 Telnet 工具
  • Maven - Assembly实战
  • ubuntu 虚拟机将linux文件夹映射为windows网络位置
  • Openlayers高级交互(2/20):清除所有图层的有效方法
  • 01 springboot-整合日志(logback-config.xml)
  • 【H2O2|全栈】JS入门知识(五)
  • 前端报错:‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序(node_modules下载不下来)
  • 中小型医院网站开发:Spring Boot入门
  • Mac 查看编译器默认使用C++标准
  • C语言【调试】(个人笔记版)
  • 【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第五篇-着色器投影-投射阴影部分】
  • 选择排序,插入排序,快速排序的java简单实现
  • 200台设备如何做到运行半年0故障?工厂设备管理这些环节是关键!
  • Yolov10训练的餐盘菜品目标检测软件(包含源码及数据集)
  • B3612 【深进1.例1】求区间和