一种多CSV文件的合并和校验的方法及系统与流程

文档序号:20616953发布日期:2020-05-06 20:16阅读:358来源:国知局
本发明涉及一种多csv文件的合并和校验的方法及系统,属于计算机游戏领域。
背景技术
::业务上有类需求,需要校验csv形式的文件,如校验文件指定列必须为整数,指定列必须不能为空,指定列必须在指定范围等等规则。针对这些规则的校验,业界通常使用goodtables-py来实现这一功能。goodtables-py是一个用于验证表格数据的开源框架。它可以检查你的数据的结构,比如所有行的列数相同,所有日期均有效,没有空行,没有空头,等等。但goodtables-py的最大弊端在于不能支持多表,即多个csv文件的规则检查。而实际业务情况下,两张表甚至更多表的联合检查,是经常遇到的。技术实现要素:本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种多csv文件的合并和校验的方法及系统。本发明的技术方案包括一种多csv文件的合并和校验的方法,其特征在于,该方法包括以下步骤:s10,对待校验的csv文件的表单数进行识别,根据识别结果及检查请求创建对应的检查配置,并生成配置文件;s20,将多个csv文件根据所述检查配置进行转换合并处理,生成单个csv文件;s30,用于对所述s20得到的单个csv根据检查配置调用检查接口进行检查,生成检查报告。根据所述的多csv文件的合并和校验的方法,其中步骤s10具体包括:对接入进行检查的csv文件数进行识别,若为单个csv文件则直接调用检查接口进行文件检查;若为多个csv文件,则根据多个csv的检查请求创建对应的检查配置。根据所述的多csv文件的合并和校验的方法,其中该方法还包括对执行检查后多个csv文件的关联合并后的单表,以及,对单个csv文件的单表进行逻辑检查。根据所述的多csv文件的合并和校验的方法,其中检查接口为goodtables。根据所述的多csv文件的合并和校验的方法,其中配置文件具体包括对多个需要检查的文件的指定路径、编码、标题行、分隔符、多表关联条件字段及输出字段进行自定义配置。根据所述的多csv文件的合并和校验的方法,其中步骤s20对多个csv文件的转换合并处理具体包括:s21,读取配置文件,根据配置文件获取并加载待校验的多个csv文件;s22,对多个csv文件分别执行转换为utf-8格式、转换分隔符及增加行号的处理;s23,将进行转换的csv文件进行关联合并,生成单个csv文件,并记录合并前多个csv文件的表的列号;s24,删除无用表行。根据所述的多csv文件的合并和校验的方法,其中步骤s23具体包括:根据请求对多个csv文件对应的多表sql语句进行拼接处理,进一步生成拼接后的单表,并对单表规则校验。根据所述的多csv文件的合并和校验的方法,其中步骤s30具体包括:将校验后一条或多条校验失败的表单记录进行显示,进一步,显示对应的行号和列号。本发明的技术方案还包括一种多csv文件的合并和校验的系统,用于执行上述任一个所述方法,其特征在于:配置模块,用于对待校验的csv文件的表单数进行识别,根据识别结果及检查请求创建对应的检查配置,并生成配置文件;转换模块,用于将多个csv文件根据所述检查配置进行转换合并处理,生成单个csv文件;报告模块,用于对所述转换模块生成的单个csv文件根据检查配置调用检查接口进行检查,生成检查报告。本发明的有益效果为:多csv文件关联查找、导出、校验等类似需求,在很多情况下都是需要的,本工具使用简便,功能齐全,报表清晰,为后续查找分析问题,提供有力支持,弥补多csv无法使用利用goodtables进行校验的空白;做到单表、多表两种情况的规则校验,实现简单化、可配置、报告化,提高了多表关联查找、导出及校验的效率。附图说明下面结合附图和实施例对本发明进一步地说明;图1所示为根据本发明实施方式的总体流程图;图2所示为根据本发明实施方式系统框图;图3所示为根据本发明实施方式的csv文件识别及表校验图;图4所示为根据本发明实施方式的多表合并流程图;图5所示为根据本发明实施方式的多表中单个csv文件处理流程图。具体实施方式本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属
技术领域
:技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。图1所示为根据本发明实施方式的总体流程图。该流程包括:s10,对待校验的csv文件的表单数进行识别,根据识别结果及检查请求创建对应的检查配置,并生成配置文件;s20,将多个csv文件根据所述检查配置进行转换合并处理,生成单个csv文件;s30,用于对所述s20得到的单个csv根据检查配置调用检查接口进行检查,生成检查报告。图2所示为根据本发明实施方式系统框图。该系统包括:配置模块,用于对待校验的csv文件的表单数进行识别,根据识别结果及检查请求创建对应的检查配置,并生成配置文件;转换模块,用于将多个csv文件根据所述检查配置进行转换合并处理,生成单个csv文件;报告模块,用于对所述转换模块生成的单个csv文件根据检查配置调用检查接口进行检查,生成检查报告。图3所示为根据本发明实施方式的csv文件识别及表校验图。这里采用web服务的形式,将配置传入,输出校验报告,对接入进行检查的csv文件数进行识别,若为单个csv文件则直接调用检查接口进行文件检查;若为多个csv文件,则根据多个csv的检查请求创建对应的检查配置,基于对单个或多个csv文件,在生成单个csv文件后,执行对单表的检查,其检查包括对执行检查后多个csv文件的关联合并后的单表的多规则校验,以及,对单个csv文件的单表进行联合多规则校验,其中多规则校验和联合多规则校验可自定义设置。图4所示为根据本发明实施方式的多表合并流程图。如图所示模块,从左向右,依次为数据的流动模块,也就是整个校验的过程。其中最重要的逻辑为多csv合并为新csv的过程,逻辑如图4所示。图5所示为根据本发明实施方式的多表中单个csv文件处理流程图。上图为遍历多个csv,处理每个csv的步骤,其将繁琐的各类转换封装起来,避免了大量的人为操作文件的代价。本发明提供了较为具体的实施方式:基于以下接口实现方案:goodtables-py单表结构规则校验,qtextasdata:多csv文件关联合并,prettytable:美观的控制台输出结果报表。以上为json形式的校验规则配置,具体对应上边举例中的校验需求,配置文主要files、relate、resources三块配置,分别对应csv文件配置、关联配置、校验规则配置,执行工具,传入配置文件,等待报告产生。报告如下,清晰展示校验失败的行号和列号,一目了然的获取校验结果。代码逻辑如下(1)~(8)所示:(1)配置文件(配置多个需要检查的文件,指定路径、编码、标题行、分隔符及多表关联条件字段和输出字段);(2)获取配置,校验配置、遍历文件;(3)统一转码为utf-8;(4)统一转换分割符;(5)统一增加行号;(6)统一转换为csv;(7)记录原始表对应的列号;(8)删除无用的表行;(9)拼接sql;(10)运行关联,形成新表;(11)goodtable执行新表规则检查;(12)输出报告。多csv文件关联查找、导出、校验等类似需求,在很多情况下都是需要的,本工具使用简便,功能齐全,报表清晰,为后续查找分析问题,提供有力支持,弥补多csv无法使用利用goodtables进行校验的空白。上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所述
技术领域
:普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1