查询数据值有null时异常处理

查询数据值有null时异常处理

这里是我碰到的一个数据接口异常,出现在我项目中电话的模糊查询,在项目中新增用户时一个用户可以新增三个电话,一个办公电话、一个移动电话、一个家庭电话,这边一个用户是三个电话的新增,但由于我考虑到个人可能没有这么多的电话提供,所以我就允许用户新增时三个电话必须新增一个,所以就会导致有的电话数据为空的情况,我们这边的页面的查询条件有两个电话的查询,办公电话和移动电话,但是在我写好模糊查询的时候,进行测试我就发现如果说我的所有用户中只要有一个用户的某个数据为空那么我查询那一种数据的时候就会出现数据异常的情况,比如说我的一个用户的移动电话为空但是我还有其他用户的移动电话数据那么我进行移动电话的模糊查询时就会直接数据异常,它不会管你其他的数据,就会出现这种情况。这里就是说如何简单的处理一下这种情况。

这上边就是写的一个办公电话和一个移动电话的模糊查询,当然还有其他的查询条件,但是这里出现问题的就是这两个数据的查询,因为我的其他数据是不允许为空的,所以不会出现我上边说的情况。

首先我们看数据库中的数据,左边一列是移动电话,右边一列是办公电话,我们可以看到这两列数据都是有空值存在的(null就是空),当我们这边的数据有空值存在的时候我们在页面进行模糊查询的时候就会出现数据异常,只要一列数据中有一个空值都会出现数据异常,虽然我写的是模糊查询都是不行的。下面的话可以看一下结果图

上边我们是进行的移动电话的查询,我们可以看到移动电话的那一列第二个数据是为空的,在我们还没有进行处理直接查询移动电话为5445212这条数据的时候尽管是有这条数据的但是它会直接出现下面这个数据接口请求异常的一个报错。

其实在还没有报数据接口异常的时候,它就会在控制器这边报出一个错误,我们可以简单的看懂一点,下面的疑难解答提示“在调用方法前,通过检查确定对象是否为null”,可以想到这个错是由于数据有null了。

其实是很简单的一个解决方法,就是当我们在数据库进行查询出来数据后我们进行一个循环,循环查询出来的所有数据,然后循环中判断,我们这边就是判断移动电话和办公电话,如果为null的话就给它赋值为一个空的字符串。这两者是有区别的, null会报错那我就给它一个空的字符串,这样就不会报错了,下面是处理好null值之后的查询结果,就会按照你的查询条件显示对应的数据,这样就解决咯。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对于数据进行重复值、缺失值和异常值检测与处理,可以按照以下步骤进行: 1. 重复值检测与处理: 首先可以使用 Pandas 库的 `duplicated()` 方法检测重复值,该方法返回一个布尔型 Series,表示每个行是否为重复行。可以进一步使用 `drop_duplicates()` 方法去除重复行。如果需要保留重复行的一个副本,可以使用 `keep` 参数来指定。 2. 缺失值检测与处理: 缺失值检测可以使用 Pandas 库的 `isna()` 或 `isnull()` 方法,该方法返回一个布尔型 Series,表示每个元素是否为缺失值。可以进一步使用 `dropna()` 方法删除缺失值所在的行或列,或者使用 `fillna()` 方法将缺失值填充为指定的值,如平均值、中位数等。 3. 异常值检测与处理: 可以使用可视化工具或统计方法来检测异常值。例如,可以使用箱线图、直方图等可视化工具来检查数据的分布情况,发现异常值后可以使用 `drop()` 方法将其删除或使用插值方法进行处理。 另外,也可以使用统计学方法来检测异常值,如 Z-score 方法或 Tukey's Fence 方法。Z-score 方法通过计算每个数据点与均值之间的差值,并除以标准差来计算 Z-score 值,如果 Z-score 值大于某个阈值,则认为该数据点是异常值。Tukey's Fence 方法则根据四分位数来计算数据的范围,如果数据点超出了范围,则认为其是异常值。 以上是一些常用的方法,具体的处理方式需要根据数据的特点和实际情况来定。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值