django ORM之 values和annotate使用

django ORM之 values和annotate使用

任务需求:项目中有个问题表,存储所有的问题,以_id为编号,由于_id未做唯一校验,所以早期数据有多个问题使用同一编号的情况。

需求就是找出编号有重复的数据,只保留第一个


开始之前

使用了values和annotate两个函数

简单的来说values可以理解成展示models指定列的值

annotate起到了group by的作用,

所以我做的事就是对指定字段按个数进行统计,然后留下重复编号的数据,进行清洗


  1. 看看数据库数据
  1. 查看每条数据的_id的值
  1. 对_id数据条数进行统计
  1. 转换数据格式为list

我只需要重复数据,所以把_id唯一的数据剔除

  1. 写个简单的遍历
  1. 然后只需要找到这些数据,对每个_id只留下第一条数据

  2. 导出sql,做个备份,开始删除数据

最终处理:

删除过程:

再回到网站看看数据清洗后的效果

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值