前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中使用deepdiff对比json对象时,对比时如何忽略数组中多个不同对象的相同字段

Python中使用deepdiff对比json对象时,对比时如何忽略数组中多个不同对象的相同字段

作者头像
小博测试成长之路
发布2023-09-21 08:28:20
7320
发布2023-09-21 08:28:20
举报
文章被收录于专栏:软件测试学习

最近忙成狗了,很少挤出时间来学习,大部分时间都在加班测需求,今天在测一个需求的时候,需要对比数据同步后的数据是否正确,因此需要用到json对比差异,这里使用deepdiff。

一般是用deepdiff进行对比的时候,常见的对比是对比单个的json对象,这个时候如果某个字段的结果有差异时,可以使用exclude_paths选项去指定要忽略的字段内容,可以看下面的案例进行学习:

上面的代码是一般单条数据对比的情况。

那么如果数据量比较大的话,单条对比查询数据效率比较低,因此,肯呢个会调用接口进行批量查询,然后将数据转成[{},{},{}]的列表形式去进行对比,那么这个时候再使用exclude_paths就无法直接简单的排除某个字段了。

从上图可以看出,此时对比列表元素的话,除非自己一个个去指定要排除哪个索引下的字段,不过这样当列表的数据比较多的时候,这样写起来就很不方便,代码可读性也很差,之前找到过一个用法,后来好久没用,有点忘了,今晚又去翻以前写过的代码记录,终于又给我找到了,针对这种情况,可以使用exclude_regex_paths去实现:

时间有限,这里就不针对deepdiff去做过多详细的介绍了,感兴趣的小伙伴可自行查阅文档学习。

这里对比还遇到一个问题,等回头解决了再分享:

就这种值一样,类型不一样的,要想办法排除掉。要是小伙伴有好的方法,欢迎指导指导我。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-20 08:08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小博测试成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档