Python(33):数据断言(查询数据库数据和插入数据对比)

Python(33):数据断言(查询数据库数据和插入数据对比)

前言:

需求:需要针对查询数据库数据和插入的数据进行对比,用Python语言进行编写

数据库查询的结果可参考:https://blog.csdn.net/fen_fen/article/details/135462484

1、查询结果数据示例

#查询结果
result_list = [{'ID': 181, 'AES': 'HMF', 'SM4': '北京XXX技术有限公司', 'SM4_A': '北京市朝阳区明天第一城6-901', 'EMAIL': 'hmf@yahoo.com', 'PHONE': '15652996964', 'SSN': '110103201206200910', 'MILITARY': '武水电字第3632734号', 'PASSPORT': 'BWP018930705', 'INTELSSN': '110103201206200910', 'INTELPASSPORT': 'BWP018930705', 'INTELMILITARY': '武水电字第3632734号', 'INTELGANGHUI': 'H21157232', 'INTELTAITONEI': '9839487602', 'CREDIT_CARD_SHORT': '117', 'CREDIT_CARD_LONG': '6212262502009182455', 'JOB': '测试开发工程师', 'SM4_CBC': '北京XXX技术有限公司', 'SM4_A_CBC': '产品研发部'}]

#插入的数据转换成字典,例子

dict_input ={'AES': 'HMF', 'SM4': '北京XXX技术有限公司', 'SM4_A': '北京市朝阳区明天第一城6-901', 'EMAIL': 'hmf@yahoo.com', 'PHONE': '15652996964', 'SSN': '110103201206200910', 'MILITARY': '武水电字第3632734号', 'PASSPORT': 'BWP018930705', 'INTELSSN': '110103201206200910', 'INTELPASSPORT': 'BWP018930705', 'INTELMILITARY': '武水电字第3632734号', 'INTELGANGHUI': 'H21157232', 'INTELTAITONEI': '9839487602', 'CREDIT_CARD_SHORT': '117', 'CREDIT_CARD_LONG': '6212262502009182455', 'JOB': '测试开发工程师', 'SM4_CBC': '北京XXX技术有限公司', 'SM4_A_CBC': '产品研发部'}

2、python编写的对比代码示例

2.1、dbassert.py

#_*_coding:utf-8_*_


def assert_plain_data(result_list, dict_input):
    count = 0
    for item in result_list:
        for key in item:
            if key != "ID":
                for key_input in dict_input:
                    # print(key)
                    # print(key_input)
                    if key == key_input:
                        # print(mapInput[key_input])
                        if item[key] == dict_input[key_input]:
                            count += 1
    return count


def assert_cipher_data(result_list,cipher):
    count = 0
    for item in result_list:
        for key in item:
            if key != "ID":
                if item[key].endswith(cipher):
                    count += 1
    return count

2.2、调用

result_list = [{'ID': 181, 'AES': 'HMF', 'SM4': '北京XXX技术有限公司', 'SM4_A': '北京市朝阳区明天第一城6-901', 'EMAIL': 'hmf@yahoo.com', 'PHONE': '15652996964', 'SSN': '110103201206200910', 'MILITARY': '武水电字第3632734号', 'PASSPORT': 'BWP018930705', 'INTELSSN': '110103201206200910', 'INTELPASSPORT': 'BWP018930705', 'INTELMILITARY': '武水电字第3632734号', 'INTELGANGHUI': 'H21157232', 'INTELTAITONEI': '9839487602', 'CREDIT_CARD_SHORT': '117', 'CREDIT_CARD_LONG': '6212262502009182455', 'JOB': '测试开发工程师', 'SM4_CBC': '北京XXX技术有限公司', 'SM4_A_CBC': '产品研发部'}]
dict_input ={'AES': 'HMF', 'SM4': '北京XXX技术有限公司', 'SM4_A': '北京市朝阳区明天第一城6-901', 'EMAIL': 'hmf@yahoo.com', 'PHONE': '15652996964', 'SSN': '110103201206200910', 'MILITARY': '武水电字第3632734号', 'PASSPORT': 'BWP018930705', 'INTELSSN': '110103201206200910', 'INTELPASSPORT': 'BWP018930705', 'INTELMILITARY': '武水电字第3632734号', 'INTELGANGHUI': 'H21157232', 'INTELTAITONEI': '9839487602', 'CREDIT_CARD_SHORT': '117', 'CREDIT_CARD_LONG': '6212262502009182455', 'JOB': '测试开发工程师', 'SM4_CBC': '北京XXX技术有限公司', 'SM4_A_CBC': '产品研发部'}

num = assert_plain_data(result_list,dict_input)
print(num)

result_list2 = [{'ID': 181, 'AES': 'HMF|^|', 'SM4': '北京XXX技术有限公司', 'SM4_A': '北京市朝阳区明天第一城6-901', 'EMAIL': 'hmf@yahoo.com', 'PHONE': '15652996964', 'SSN': '110103201206200910', 'MILITARY': '武水电字第3632734号', 'PASSPORT': 'BWP018930705', 'INTELSSN': '110103201206200910', 'INTELPASSPORT': 'BWP018930705', 'INTELMILITARY': '武水电字第3632734号', 'INTELGANGHUI': 'H21157232', 'INTELTAITONEI': '9839487602', 'CREDIT_CARD_SHORT': '117', 'CREDIT_CARD_LONG': '6212262502009182455', 'JOB': '测试开发工程师', 'SM4_CBC': '北京XXX技术有限公司', 'SM4_A_CBC': '产品研发部'}]
count =assert_cipher_data(result_list2,"|^|")
print(count)

2.3、执行结果

最后再用unittest的断言进行判断数量是否一致

assertEqual(self, first, second, msg=None)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/306177.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

共享文件访问权限被拒绝

winr 打开命令行输入gpedit.msc打开组编辑窗口 这样操作之后就远程电脑一般就可以访问共享文件夹了

STM32CubeMX配置STM32G031多通道UART+DMA收发数据(HAL库开发)

时钟配置HSI主频配置64M 配置好串口&#xff0c;选择异步模式 配置DMA TX,RX,选择循环模式。 NVIC中勾选使能中断 勾选生成独立的.c和h文件 配置好需要的开发环境并获取代码 串口重定向勾选Use Micro LIB main.c文件修改 增加头文件和串口重定向 #include <string.h&g…

纯血鸿蒙「扩圈」100天,酝酿已久的突围

坦白讲&#xff0c;去年参加华为开发者大会看到HarmonyOS NEXT&#xff08;仅运行鸿蒙原生应用&#xff0c;所以也称作「纯血鸿蒙」&#xff09;的时候&#xff0c;小雷也没料想到鸿蒙原生应用生态的发展速度会如此之快。 9月25日&#xff0c;华为正式对外宣布启动HarmonyOS NE…

LabVIEW在微生物检测中的应用

随着对食品安全关注的增加&#xff0c;食品检测的准确性变得越来越重要。其中&#xff0c;微生物计数作为食品合格的关键指标&#xff0c;对其检测技术的准确性和实时性要求极高。传统的微生物检测面临着菌落识别困难、设备实时性差和自动化程度不高等问题&#xff0c;尤其在疫…

深入了解鸿鹄电子招投标系统:Java版企业电子招标采购系统的核心功能

随着市场竞争的加剧和企业规模的扩大&#xff0c;招采管理逐渐成为企业核心竞争力的重要组成部分。为了提高招采工作的效率和质量&#xff0c;我们提出了一种基于电子化平台的解决方案。该方案旨在通过电子化招投标&#xff0c;使得招标采购的质量更高、速度更快&#xff0c;同…

【HarmonyOS4.0】第三篇-类web开发模式

【HarmonyOS4.0】第三篇-类web开发模式 一、鸿蒙介绍 课程核心 为什么我们需要学习鸿蒙&#xff1f; 哪些人适合直接转鸿蒙&#xff1f; 鸿蒙系统优势是什么&#xff1f; 课程内容 (1)为什么要学习鸿蒙 从行情出发&#xff1a; 美国商务部长访问中国&#xff0c;2023年…

uniapp实现清除缓存

一、页面加载时计算缓存大小&#xff08;H5不支持&#xff09; data() {return {// 缓存大小展示到页面上fileSizeString: 0KB} }// 获取缓存大小formatSize() {let that this;// #ifndef H5plus.cache.calculate(function(size) {let sizeCache parseInt(size);if (sizeCac…

linux 使用log4cpp记录项目日志

为什么要用log4cpp记录项目日志 在通常情况下&#xff0c;Linux/UNIX 每个程序在开始运行的时刻&#xff0c;都会打开 3 个已经打开的 stream. 分别用来输入&#xff0c;输出&#xff0c;打印错误信息。通常他们会被连接到用户终端。这 3 个句柄的类型为指向 FILE 的指针。可以…

Spring循环引用和三级缓存

前言 Spring 解决 Bean 之间的循环引用关系用到了三级缓存&#xff0c;那么问题来了。三级缓存是怎么用的&#xff1f;每一层的作用是什么&#xff1f;非得用三级吗&#xff1f;两级缓存行不行&#xff1f; 理解循环引用 所谓的“循环引用”是指 Bean 之间的依赖关系形成了一…

【算法刷题】Day28

文章目录 1. 买卖股票的最佳时机 III题干&#xff1a;算法原理&#xff1a;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码&#xff1a; 2. Z 字形变换题干&#xff1a;算法原理&#xff1a;1. 模拟2. 找规律 代码&#xff1a; 1. 买卖股票的最佳时…

PostGIS学习教程二十:3-D

PostGIS学习教程二十&#xff1a;3-D 注意&#xff1a;本文介绍许多PostGIS2.0及更高版本才支持的功能。 文章目录 PostGIS学习教程二十&#xff1a;3-D一、3-D几何图形二、3-D函数三、N-D索引 一、3-D几何图形 到目前为止&#xff0c;我们一直在处理2-D几何图形&#xff08;…

firewalld防火墙命令行工具

firewall-cmd命令 &#xff08;1&#xff09;启动、停止、查看firewalld服务 在安装CentOS 7系统时&#xff0c;会自动安装firewalld 和图形化工具firewall-config.执行以下命令可 以启动 firewalld 并设置为开机自启动状态。 [rootllcgc ~]# systemctl start firewalld.serv…

【SpringCloud】之入门级及nacos的集成使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《SpringCloud开发之入门级及nacos》。&#x1f3…

数据库内核那些事|细说PolarDB优化器查询变换:IN-List变换

导读 数据库的查询优化器是整个系统的"大脑"&#xff0c;一条SQL语句执行是否高效在不同的优化决策下可能会产生几个数量级的性能差异&#xff0c;因此优化器也是数据库系统中最为核心的组件和竞争力之一。阿里云瑶池旗下的云原生数据库PolarDB MySQL版作为领先的云…

36-javascript输出方式,弹框:普通,confirm弹框,prompt弹框,控制台输出:普通,warm,error

1.页面打印 <body><p>你真是一个小机灵鬼</p><script>// 页面打印document.write("打印内容");</script> </body> 2.覆盖文档 <body><p>你真是一个小机灵鬼</p><script>// 覆盖文档window.onload f…

模型容器与AlexNet构建

一、模型容器——Containers nn.Sequential 是 nn.module的容器&#xff0c;用于按顺序包装一组网络层 Sequential 容器 nn.Sequential 是 nn.module的容器&#xff0c;用于按顺序包装一组网络层 • 顺序性&#xff1a;各网络层之间严格按照顺序构建 • 自带forward()&#xf…

HACKTHEBOX通关笔记——Poison(退役)

调试网络连通性 拿到IP我们还是做一下nmap扫描&#xff0c;快速速率扫描结合-A详细扫描&#xff0c;事半功倍 nmap --rate-min 5000 -p- 10.129.58.204 -vnmap -A -p 22,80 10.129.58.204 -v 发现http是一个可以读取文件的页面 这台主机似乎没办法做目录扫描&#xff0c;一扫…

电脑找不到ffmpeg.dll的解决方法有哪些,分享5种可靠的方法

在计算机编程和多媒体处理领域&#xff0c;ffmpeg.dll是一个非常重要的动态链接库文件。它是由FFmpeg项目开发和维护的&#xff0c;FFmpeg是一个开源的音视频处理框架&#xff0c;提供了一套完整的音视频编解码、转码、流化、滤镜等功能。ffmpeg.dll是FFmpeg库的一部分&#xf…

SwiftUI之深入解析Alignment Guides的超实用实战教程

一、Alignment Guide 简介 Alignment guides 是一个强大的布局工具&#xff0c;但通常未被充分利用。在很多情况下&#xff0c;它们可以帮助我们避免更复杂的选项&#xff0c;比如锚点偏好。如下所示&#xff0c;对对齐的更改也可以自动&#xff08;并且容易地&#xff09;动画…

MySQL语法及IDEA使用MySQL大全

在项目中我们时常需要写SQL语句&#xff0c;或简单的使用注解直接开发&#xff0c;或使用XML进行动态SQL之类的相对困难的SQL&#xff0c;并在IDEA中操控我们的SQL&#xff0c;但网上大都图方便或者觉得太简单了&#xff0c;完全没一个涵盖两个方面的讲解。 单表&#xff1a; …