查询sql结果根据主键拼装,然后源数据与目标数据对比

    def comp_data_by_same_key(self,source_data,target_data,source_key,target_key):print("数据源A:%s \n数据源B:%s \n数据源A、B的主键:%s:%s" %(source_data,target_data,source_key,target_key))self.check_diff_key_record(source_data,target_data)self.check_diff_field(source_data,target_data)print("开始比较主键相同的数据")diff_val = {}for k1, v1 in source_data.items():try:v2 = target_data[k1]# 找出相同的字段名对比数据same_key = v1.keys() & v2.keys()diff_list = []for key in same_key:# print("对比值:%s:%s" %(str(v1[key]),str(v2[key])))if str(v1[key]) == str(v2[key]):# print("相同的值")# print(str(v1[key]), str(v2[key]))continueelse:# 找出字段名一致,值不一致的数据# print("不同的值---------")# print(str(v1[key]), str(v2[key]))diff = [key, v1[key], v2[key]]# 判断diff是否存在,若存在,以primary_key为key存进字典if 'diff' in vars():# diff_val[k1] = diffdiff_list.append(diff)diff_val[k1] = diff_listexcept KeyError as e:print("keyerror:%s" % e)continueprint("有%s个主键的值不一致: 主键名:数据源A:数据源B" % len(diff_val))# print(diff_val)for k, v in diff_val.items():print("%s:%s" % (k, v))if len(diff_val) == 0:return Trueelse:return Falsedef check_diff_key_record(self,source_data,target_data):print("数据源A和B的条数差为:%s, 数据源A记录条数:%s === 数据源B记录条数:%s \n" % ((len(source_data)-len(target_data)),len(source_data), len(target_data)))print("数据源A独有的数据条数:%s \n 数据: %s" %(len(source_data.keys() - target_data.keys()),(source_data.keys() - target_data.keys())))print("数据源B独有的数据条数:%s \n 数据: %s" %(len(target_data.keys() - source_data.keys()),(target_data.keys() - source_data.keys())))def check_diff_field(self,source_data,target_data):print("只有数据源A有的字段:%s" % (list(source_data.values())[0].keys() - list(target_data.values())[0].keys()))print("只有数据源B有的字段:%s" % (list(target_data.values())[0].keys() - list(source_data.values())[0].keys()))print("数据源A和B不能匹配的字段:")print(list(source_data.values())[0].keys() ^ list(target_data.values())[0].keys())

python-sql查询结果数据对比相关推荐

  1. python sql脚本_使用Python SQL脚本进行数据采样

    python sql脚本 介绍 (Introduction) The Python programming language is object oriented, easy to use and, ...

  2. sql 查询时间数据

    ** sql 查询时间数据 ** 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHER ...

  3. MySQL数据通过SQL查询指定数据表的字段名及字段备注

    MySQL数据通过SQL查询指定数据表的字段名及字段备注 SELECT COLUMN_NAME,COLUMN_COMMENT FROM INFORMATION_SCHEMA.Columns WHERE ...

  4. java批量执行查询sql语句_详解MyBatis直接执行SQL查询及数据批量插入

    一.直接执行SQL查询: 1.mappers文件节选 ${paramSQL} 2.DAO类节选 public interface SomeDAO{ List getInstanceModel(@Par ...

  5. ASP.NET网站开发——LINQ TO SQL 查询数据库数据(八大子句)

    LINQ查询字句概述 1.查询(Query)是一组指令,这些指令可以从一个或多个给定的数据源中检索数据,并指定检索结果的数据类型和表现形式. 2.查询表达式是一种用查询语法表示的表达式,由一组用类似于 ...

  6. VBA-自定义面板,使用SQL查询Excel数据

    需求 定制插件,实现用户打开任意一个工作簿,写sql对Excel中的数据进行查询 案例sql需求场景: 需求 筛选日期小于'2023-4-24',按group字段分组,求和各分组下的销售额,返回结果集 ...

  7. SQL 查询重复数据并显示重复次数

    查询有重复数据的记录 select * from F group by a,b,c,d having count(*)>1 删除重复一模一样的记录,只保留一条记录 select distinct ...

  8. python sql查询返回记录_干货!Python与MySQL数据库的交互实战

    安装PyMySQL库 如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安装很简单,直接使用pip install pymysql:假如这种方式还是安装不上,就用 ...

  9. mysql sql查询json数据_mysql如何查询json的值

    mysql查询json的值的方法:首先打开命令窗口:然后执行SQL语句"SELECT REPLACE(json_extract(push_data,'$.carRenewalInfoVo.l ...

最新文章

  1. 电动汽车:新一轮三年十倍,“补贴”结束“高端”开启
  2. 通过FxCop来验证.NET编码规范
  3. java类与对象实验_JAVA类与对象实验报告
  4. Nginx----实现https站点
  5. 优化在深度学习中的挑战
  6. 微服务模块综合管理(模块视图管理,自动化热部署,前端资源实时刷新......)
  7. Linux 目录栈及目录切换
  8. SQL Server Profiler 常见问题总结
  9. 转:关于数据库压缩技术的Survey
  10. ESP8266 WIFI模块使用说明
  11. 电子设计教程19:晶体管负反馈放大电路的原理设计
  12. 将本地项目上传到码云
  13. 相关性分析及SPSS软件操作
  14. 技术部岗位职责——技术总监
  15. Win7下安装swoole具体步骤
  16. 遍历目录 nftw and ftw
  17. 知人者智自知者明--所有的懊恼都是实力的差劲--我的第一次面试
  18. linux下USB3.0端口无法识别3.0设备
  19. linux nginx安装https安全证书
  20. 队列的顺序实现(入队、出队、对长、获取队头元素)

热门文章

  1. An Introduction to Shiro (formerly JSecurity) – A Beginner’s Tutorial Part 3
  2. 180亿美元的三行代码
  3. IT人喝酒不同岗位不同姿态,最服程序员!
  4. iOS导入cocos2d游戏
  5. abap xml转换(1)XSLT程序
  6. JavaSE笔记(三)重制版
  7. [予纯 · 星火 - 3] 数学与女孩最佳穿着
  8. 关于trello的分享
  9. 回顾基础,Java如何在main方法中调用自身的main方法
  10. Snappy Java API简介