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 = 0for 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 += 1return countdef assert_cipher_data(result_list,cipher):count = 0for item in result_list:for key in item:if key != "ID":if item[key].endswith(cipher):count += 1return 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)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决 ubuntu 下编译文件的时候与 YAML 相关的的报错

输入: catkin build -DCMAKE_C_COMPILERgcc-8 -DCMAKE_CXX_COMPILERg-8 或 catkin build airsim_tutorial_pkgs -DCMAKE_C_COMPILERgcc-8 -DCMAKE_CXX_COMPILERg-8 报错如下: 可能是缺少 yaml-cpp 文件,然后操作: sudo apt-g…

Day3Qt

1. (1)完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 …

大语言模型算法工程师面试实战指南

大语言模型算法工程师面试实战指南 一级标题需要算法模拟面试的私信我或者加微信

PyCharm 设置新建Python文件时自动在文章开头添加固定注释的方法

在实际项目开发时,为了让编写的每个代码文件易读、易于维护或方便协同开发时,我们都会在每一个代码文件的开头做一些注释,如作者,文档编写时间,文档的功能说明等。 利用PyCharm 编辑器,我们只需设置相关设…

Java中多线程二

抢占调度模型 概述:优先让优先级高的线程使用 CPU ,如果线程的优先级相同,那么随机会选择一个,优先级高的线程获取的 CPU 时间片相对多一些 Thread 类中一些关于线程的方法 方法简述public final int getPriority()返回此线程的优…

夏目友人帐OVA:和猫咪老师的初次跑腿、曾几何时下雪之日 2013.12.15

夏目友人帐OVA 1、和猫咪老师的初次跑腿 / ニャンコ先生とはじめてのおつかい2、曾几何时下雪之日 / いつかゆきのひに 1、和猫咪老师的初次跑腿 / ニャンコ先生とはじめてのおつかい 和夏目一起外出的途中,猫咪老师因追蜻蜓遇到了一对迷路的龙凤胎兄妹。猫咪老师不…

软件测试----测试管理方法论

1、缺陷 (1)缺陷的主要变现: 1)需求要求的功能没有实现 2)实现了需求没有要求的功能 3)软件中出现了明确指明不应该出现的错误 4)需求虽未明确说明,但是应该实现的功能没有实现 5&…

Python冒号的解释

1. “没什么首次没有为第二个,跳了三个”。它得到的切片序列的每一个第三个项目。 扩展片是你想要的。新在Python 2.3 2. Python的序列切片地址可以写成[开始:结束:一步]和任何启动,停止或结束可以被丢弃。a[::3]是每第三个序列。…

用友U8流程审批效率-SQLServer+SSRS

文章目录 @[TOC]1、 需求及效果1.1 需求1.2 效果2、 思路及SQL语句3、实现折叠明细表4、结语1、 需求及效果 1.1 需求 想要查看U8的审批流程,查看流程在哪个节点或人停留的时间,这个单据整个流程走下来需要的时间。可以更加直观方便的查看审批效率 1.2 效果 采用了SSRS上…

JDBC初体验(一)

本课目标 理解JDBC的概念和工作原理 掌握JDBC的开发步骤 掌握 Connection 接口的使用 掌握Statement 接口的使用 掌握 ResultSet 接口的使用 一、JDBC 1.JDBC概述 JDBC(Java DataBase Connectivity)是Java数据库连接技术的简称,提供连…

Python实现PDF—>Excel的自动批量转换(附完整代码)

Python实现PDF—>Excel的自动批量转换(附完整代码) 话不多说,先看效果! 需要转换的PDF: 转换后的Excel: 01、底层原理 PDF 到 Excel 的转换涉及不同文件格式之间的数据提取和重构。底层原理可以简…

手撕单链表(单向,不循环,不带头结点)的基本操作

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…