数据处理方法、装置、设备和存储介质与流程

文档序号:17990024发布日期:2019-06-22 00:42阅读:296来源:国知局
数据处理方法、装置、设备和存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备和存储介质。



背景技术:

目前,在现代化的项目开发过程中,人们更加广泛的使用git版本控制软件进行项目的版本管理,以解决修改项目中的数据时产生的不同软件版本的问题。并且,在git软件的代码仓库中可以统计各项目开发人员提交的代码量等数据,并导出统计后的数据,以向用户展示各项目开发人员的代码提交量的统计结果。

然而,申请人发现,相关技术中git代码仓库中的代码提交量导出方法,导出的数据的展示形式单一,不利于用户便捷的查看数据导出结果,并且导出的数据内容无法配置,无法满足用户对特定数据的导出需求。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的第一个目的在于提出一种数据处理方法。该方法根据用户的实际需求统计代码提交数据,然后在数据库中对统计后的数据进行展示形式等各方面的个性化设置,从而以不同的形式导出数据,丰富了导出的数据的展示形式,提高了导出的数据的针对性和定制性,实现了根据用户的实际查看需求对代码提交数据进行整合和导出。

本发明的第二个目的在于提出一种数据处理装置。

本发明的第三个目的在于提出一种电子设备。

本发明的第四个目的在于提出一种计算机可读存储介质。

为达上述目的,本发明第一方面实施例提出了一种数据处理方法,包括以下步骤:

获取代码提交数据;

将代码提交数据按照预设的表格形式写入excel文件,预设的表格形式由用户根据需要设置。

另外,根据本发明上述实施例的数据处理方法,还可以具有如下附加的技术特征:

在本发明一个实施例中,代码提交数据包括以下数据中的任意一种或多种的组合:提交人标识、提交次数、新增代码行数和删除代码行数。

在本发明一个实施例中,表格形式包括表头的内容,表头的内容包括作者和以下内容中的任意一种或多种的组合:不同时间段内的代码提交情况和不同时间段内负责的缺陷数。

在本发明一个实施例中,获取代码提交数据,包括:通过gitinspector读取所述代码提交数据,存储为json格式的代码提交数据。

在本发明一个实施例中,将所述代码提交数据按照预设的表格形式写入excel文件,包括:对所述json格式的代码提交数据进行格式转换处理;将格式转换处理后的数据存储至数据库;从所述数据库中读取所述格式转换处理后的数据;将所述格式转换处理后的数据按照所述预设的表格形式写入excel文件。

本发明实施例的数据处理方法,首先获取代码提交数据,然后将代码提交数据按照预设的表格形式写入excel文件,其中,预设的表格形式由用户根据需要设置。该方法根据用户的实际需求统计代码提交数据,然后在数据库中根据统计后的代码提交数据,对展示导出数据的模板进行各方面的个性化设置,从而以不同的形式导出数据,丰富了导出的数据的展示形式,提高了导出的数据的针对性和定制性,实现了根据用户的实际查看需求对代码提交数据进行整合和导出。

为了实现上述目的,本发明还提出一种数据处理装置,包括:

获取模块,用于获取代码提交数据;

写入模块,用于将代码提交数据按照预设的表格形式写入excel文件,预设的表格形式由用户根据需要设置。

另外,根据本发明上述实施例的数据处理装置,还可以具有如下附加的技术特征:

在本发明一个实施例中,代码提交数据包括以下数据中的任意一种或多种的组合:提交人标识、提交次数、新增代码行数和删除代码行数。

在本发明一个实施例中,表格形式包括表头的内容,所述表头的内容包括作者和以下内容中的任意一种或多种的组合:不同时间段内的代码提交情况和不同时间段内负责的缺陷数。

本发明实施例的数据处理装置,首先获取代码提交数据,然后将代码提交数据按照预设的表格形式写入excel文件,其中,预设的表格形式由用户根据需要设置。由此,该装置根据用户的实际需求统计代码提交数据,然后在数据库中根据统计后的代码提交数据,对展示导出数据的模板进行各方面的个性化设置,从而以不同的形式导出数据,丰富了导出的数据的展示形式,提高了导出的数据的针对性和定制性,实现了根据用户的实际查看需求对代码提交数据进行整合和导出。

为了实现上述目的,本发明还提出一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如上述实施例所述的数据处理方法。

为了实现上述目的,本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所述的数据处理方法。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例所提供的一种数据处理方法的流程示意图;

图2为本发明实施例所提供的一种数据处理装置的结构示意图;以及

图3为本发明实施例所提供的一种示例性的电子设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本发明实施例的数据处理方法、装置、设备和存储介质。

图1为本发明实施例所提供的一种数据处理方法的流程示意图,如图1所示,该数据处理方法可以包括以下步骤:

步骤101,获取代码提交数据。

其中,代码提交数据可以包括向git软件的代码仓库中提交代码的提交人的数据,以及与该提交人对应的修改代码行数,比如,提交人的数据可以包括提交人标识、提交人邮箱和提交次数等,修改代码行数可以包括提交人在代码仓库中的新增代码行数和删除代码行数。

具体实施时,可以使用python编程语言调用git软件的公用拓展库来获取代码仓库中的代码提交数据,作为一种示例,可以通过gitinspector库读取git代码仓库中存储的代码提交数据,并将读取到的数据保存为javascript对象简谱格式(javascriptobjectnotation,简称json),从而通过json格式更加简洁和清晰的存储和表示代码提交数据,以便于后续对代码提交数据进行进一步处理。

步骤102,将代码提交数据按照预设的表格形式写入excel文件,预设的表格形式由用户根据需要设置。

具体的,作为一种可能的实现方式,在将代码提交数据进行导出前,可以根据用户实际查看导出的数据的需要,对获取到的代码提交数据进行筛选。

举例而言,若用户需要查看指定的提交人在相应时间段内的修改代码行数,则可以根据用户输入的提交人标识和具体的时间段,在获取到的全部代码提交数据中提取出提交人a和提交人b在相应时间段内的新增代码行数和删除代码行数,并删除其他与用户本次的数据导出需求不相关的数据;又比如,在上述示例的基础上,用户还需要查看提交人邮箱,则还可以在代码提交数据中筛选出的提交人邮箱。

由此,实现了根据用户实际的查看导出的数据的需求,对代码提交数据进行筛选,使用户可以对导出的数据内容进行自由配置,提高了导出代码提交时数据的灵活性和定制性。。

进一步的,对筛选出的json格式的代码提交数据进行格式转换处理,将筛选出的数据从json格式转换为展示导出数据的应用(比如excel)可以读取的格式。然后,将格式转换处理后的数据通过与数据库交互的拓展库,比如pymysql,存储至数据库中,并从数据库中读取出格式转换处理后的数据,以便于在数据库中基于格式转换处理后的数据,根据用户对数据的展示形式的需要,对展示导出数据的模板,比如,表格形式,进行设置。

作为一种示例,表格形式可以包括表头,表头中显示的内容可以根据格式转换处理后的数据的类型进行设置,比如,若格式转换处理后的数据包括提交人标识和各提交人在相应时间段内的新增代码行数和删除代码行数,及其所负责缺陷数,则表头内容可以包括各个作者即代码提交人,和各提交人在不同时段内的代码提交情况和不同时段内负责的缺陷数等。

其中,根据筛选数据时用户输入的时间段,表头中显示的不同的时段可以按照天数、星期或月份进行设置,比如,表头中的内容可以是各提交人在本周内的修改代码行数和/或上周内的修改代码行数等。从而,便于后续根据表头中的内容,将格式转换处理后的数据完整准确的写入相应的表身中,提高了预设的表格形式的适用性。

进一步的,用户还可以在数据库中对数据导出模板的字体、颜色和大小等展示参数进行设置,从而渲染数据导出模板的格式,满足用户对导出的数据的个性化需求。

需要说明的是,还可以根据用户的查看需求,在数据库中对格式转换处理后的数据进行计算和统计,比如,若用户输入查看各提交人在相应时间段内的修改代码行数的总量,则对各提交人在相应时间段内的新增代码行数和删除代码行数进行累加计算,以在数据库中自动获取修改代码行数的总量,并根据计算出的结果设置相应的表头内容,从而有利于用户更加高效的分析相应时间段内的代码总量变化。

更进一步的,将格式转换处理后的数据和相应的统计结果按照预设的表格形式写入excel文件,即根据表头内容,将格式转换处理后的数据写入相应的表身中并在excel文件进行展示,从而可以直接在excel文件中导出在数据库中整合后的代码提交数据,减少了用户通过excel等数据处理软件手动修改数据的步骤,提升了用户的满意度。

综上所述,本发明实施例的数据处理方法,首先获取代码提交数据,然后将代码提交数据按照预设的表格形式写入excel文件,其中,预设的表格形式由用户根据需要设置。该方法根据用户的实际需求统计代码提交数据,然后在数据库中根据统计后的代码提交数据,对展示导出数据的模板进行各方面的个性化设置,从而以不同的形式导出数据,丰富了导出的数据的展示形式,提高了导出的数据的针对性和定制性,实现了根据用户的实际查看需求对代码提交数据进行整合和导出。

基于上述实施例,为了更加清楚的描述本发明数据处理方法的实现过程,下面以处理项目中各代码提交人提交的代码数据和所负责的缺陷数据为例,进行数据处理方法实施算法的描述:

首先,通过gitinspector拓展库读取git代码仓库在预设时间内的全部代码数据,其中,读取到的数据包括提交人标识、提交次数、新增代码行数和删除代码行数等代码提交数据以及缺陷数据,并将读取到的数据保存为json格式,具体算法如下:

1、#执行gitinspector命令以获取代码提交数据,并保存返回结果到simpleresult库中

simpleresult=subproces.run(“gitinspector--format=json--since=”+date+“—unit=”+untildate+“”+project_path,shell=true,stdout=subprocess.pipe)

2、#当返回结果不为空时,保存该json格式的数据;当返回结果为空时,输出提示信息到日志,以便提示用户未获取到数据

进一步的,分析处理获取到json格式的数据,根据用户的实际查看需求,比如,用户指定的代码提交人及其在相应时间段内提交的代码量,从获取到的全部数据的中筛选出提交人标识、相应时段内的修改代码行数、提交人邮箱等生成数据导出模板所需的代码提交数据,以及各提交人负责的缺陷数据,并写入数据库中进行保存,具体算法如下:

3、#使用8-bitunicodetransformationformat编码(简称utf-8)对获取到的数据进行解码

gitresult=gitresult.stdout.decode(“utf-8”)

print(“codeupdatecomplete.%s”%gitresult)

4、#调用获取到的json格式的数据,使用gitinspector拓展库按照用户的实际需要收集指定时间内的代码提交数据,比如,本周内的代码提交数据和上周内的代码提交数据

codechangeresult=get_loc_by_project(start,path)

print(codechangeresult)

5、#当代码提交数据不为空时,提取json格式的数据中的提交人标识、提交人邮箱、新增代码行数、删除代码行数以及各提交人负责的缺陷数据等,并且根据提取出的新增代码行数和删除代码行数输出修改代码行数loc,其中,修改代码行数loc等于新增代码行数加上删除代码行数;当代码提交数据为空时,输出提示信息到日志

更进一步的,在数据库中根据筛选出的数据,设置导出的excel文件的模板,其中,模板中的表头包括提交人标识、各提交人的本周代码提交情况和上周代码提交情况,以及各提交者在预设时间段内负责的缺陷数据的数量,具体算法如下:

6、#设置excel文件的表头

最终,将提取出的代码提交数据以及各提交人负责的缺陷数据写入生成的excel模板中,以按照配置好的excel模板展示导出的数据,具体算法如下:

7、#将各提交人标识和/或邮箱填写模板中的a列

worksheet.write_url(“a”+str(row),author,cell-format)

8、#写入各提交人的本周数据

9、#写入各提交人的上周数据

10、#写入各提交人所负责的缺陷数据的数量

由此,根据用户的查看需求配置数据导出的模板,并通过配置好的模板展示筛选出的代码提交数据和缺陷数据,继续参照上述示例,可以将导出的代码提交数据和缺陷数据按照表1的形式进行展示:

表1

其中,a、b和c为提交人标识,通过表1可以清晰直观的显示各提交人在本周和上周时段内的修改代码行数,及其所负责的缺陷数据在相应等级下的数量,并且,对各提交人的修改代码行数和缺陷数据的总量进行了统计,避免了用户通过第三方统计工具对导出的代码提交数据和缺陷数据进行再次的编辑和统计,提高了用户查看导出的数据的效率,以及导出的数据的针对性和定制性。

需要说明的是,用户还可以在数据库中对数据导出模板的字体、颜色和大小等参数进行设置,从而渲染数据导出模板的格式,满足用户对导出的数据的个性化需求。

为了实现上述实施例,本发明还提出一种数据处理装置,图2为本发明实施例所提供的一种数据处理装置的结构示意图。如图2所示,该数据处理装置包括:获取模块100和写入模块200。

其中,获取模块100,用于获取代码提交数据。

写入模块200,用于将代码提交数据按照预设的表格形式写入excel文件,预设的表格形式由用户根据需要设置。

在本发明实施例的一种可能的实现方式中,获取模块100具体用于通过gitinspector读取代码提交数据,并存储为json格式的代码提交数据。其中,代码提交数据包括提交人标识、提交次数、新增代码行数和删除代码行数中的任意一种或多种的组合。

进一步的,在本发明实施例的一种可能的实现方式中,写入模块200具体用于对json格式的代码提交数据进行格式转换处理,并将格式转换处理后的数据存储至数据库,然后从数据库中读取格式转换处理后的数据,最后将格式转换处理后的数据按照预设的表格形式写入excel文件。

其中,表格形式包括表头的内容,表头的内容包括作者和以下内容中的任意一种或多种的组合:不同时间段内的代码提交情况和不同时间段内负责的缺陷数。

需要说明的是,前述对方法实施例的描述,也适用于本发明实施例的装置,其实现原理类似,在此不再赘述。

综上所述,本发明实施例的数据处理装置,首先获取代码提交数据,然后将代码提交数据按照预设的表格形式写入excel文件,其中,预设的表格形式由用户根据需要设置。该装置根据用户的实际需求统计代码提交数据,然后在数据库中根据统计后的代码提交数据,对展示导出数据的模板进行各方面的个性化设置,从而以不同的形式导出数据,丰富了导出的数据的展示形式,提高了导出的数据的针对性和定制性,实现了根据用户的实际查看需求对代码提交数据进行整合和导出。

为了实现上述目的,本发明还提出一种计算机设备,图3为本发明实施例提出的一种计算机设备的结构示意图。如图3所示,该计算机设备120包括:处理器121和存储器122;存储器122用于存储可执行程序代码;处理器121通过读取存储器122中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于实现如上述实施例所述的数据处理方法。

为了实现上述实施例,本发明还提出一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上述实施例所述的数据处理方法

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1