本发明专利技术实施例公开了一种将树形嵌套数据转换为平面数据表的方法,所述方法包括:A、将待转换的信息字段集合中包含的各个信息字段分别定位到所述信息字段对应在所述树形数据嵌套结构中的各个叶节点;B、获取从根节点到各个所述叶节点的各条路径;C、根据所述各条路径生成各条原语链表;D、将所述原语链表合并为单个原语树;E、遍历所述单个原语树的各个节点,以获取各个抽取原语树;F、执行所述各个抽取原语树,以获取所述各个抽取原语树对应的各个平面数据表。由上,本发明专利技术实施例有利于自动进行将树形嵌套数据转换为平面数据表的这一结构转换过程,有效降低了数据后续利用的成本。
【技术实现步骤摘要】
本专利技术涉及信息
,特别涉及一种将树形嵌套数据转换为平面数据表的方法。
技术介绍
在医疗、互联网等领域中经常出现将多个维度的信息整合在单个数据对象中的情形,通常此种数据对象都表现为不规则的深层嵌套的树形结构。在树形数据结构中,每个叶节点都是一个信息字段,其值可以是单值或多值;每个枝节点都是一个信息组,信息组可以是重复或非重复的,非重复信息组下可包含异构的确定数量的节点,而重复信息组下可包含同构的不定数量的节点。这种树形嵌套结构虽然方便了数据表达和存储,但难以被各种针对平面数据表设计的数据处理系统所接受,此时通常需要人工进行结构转换,会耗费大量人力财力。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种将树形嵌套数据转换为平面数据表的方法,有利于自动进行将树形嵌套数据转换为平面数据表的这一结构转换过程,有效降低了数据后续利用的成本。本专利技术实施例提供一种将树形嵌套数据转换为平面数据表的方法,包括以下步骤:A、将待转换的信息字段集合中包含的各个信息字段分别定位到所述信息字段对应在所述树形数据嵌套结构中的各个叶节点;B、获取从根节点到各个所述叶节点的各条路径;C、根据所述各条路径生成各条原语链表;D、将所述原语链表合并为单个原语树;E、遍历所述单个原语树的各个节点,以获取各个抽取原语树;F、执行所述各个抽取原语树,以获取所述各个抽取原语树对应的各个平面数据表。优选地,所述步骤C包括:C1、生成所述各条路径的各个节点对应的抽取原语;C2、将所述各条路径的各个节点对应的抽取原语分别串联成原语链表。优选地,所述步骤C1还包括:当判断所述路径中的枝节点或叶节点为可取多值节点时,为所述枝节点或叶节点增加生成一级ITER抽取原语;其中,所述可取多值节点为其下有同构节点组或者其本身包含同构多值信息的节点;所述ITER为:将当前工作对象作为列表遍历,将每个元素作为新的环境数据对象,同时将元素下标生成以当前环境名称命名的列。由上,为可取多值节点增加生成一级ITER抽取原语,有利于后续的数据转换。优选地,所述步骤C1还包括:当判断所述路径中的节点为叶节点时,若所述叶节点对应的字段包含同构多值信息,则调用JSON原语;若所述叶节点对应的字段为单值信息,则调用SCALAR原语;其中,所述JSON为:将当前环境数据对象序列化为JSON字符串,生成以当前环境名称为列名的列;所述SCALAR为:将当前环境数据对象作为单值,输出为以当前环境名称为列名的列;其中,若所述对象为列表类型则取首个元素。优选地,所述步骤C1还包括:当判断所述路径中的节点为根节点时,为所述根节点生成CID抽取原语;当判断所述路径中的节点为枝节点时,为所述枝节点生成CTX抽取原语;其中,所述CID为:生成预设公共字段;所述CTX为:将当前工作对象设为指定key对应的数据对象,同时将key作为当前环境名称。优选地,所述步骤D包括:D1、确定各条原语链表中的各个原语的级别和类型;D2、将同一级别中相同的原语合并为一个原语节点;D3、通过连接关系将各个原语节点连接,以获取单个原语树。优选地,所述步骤E包括:E1、若所述单个原语树的各个叶节点回溯到根节点的各条路径中有可取多值节点,则分别获取所述各条路径中的各个首个可取多值节点;E2、将所述各个首个可取多值节点加入可取多值节点集合;E3、遍历所述可取多值节点集合中各个首个可取多值节点到根节点的路径及其下的子树,以及遍历根节点及所述根节点下不包含可取多值节点路径的子树,以获取各个抽取原语树。由上,有利于后续对可取多值节点对应的字段所包含的数据的转换。由上可以看出,本专利技术提供了一种将树形嵌套数据转换为平面数据表的方法,有利于自动进行将树形嵌套数据转换为平面数据表的这一结构转换过程,可以获取任意节点数据转换后的平面数据表,且不受数据处理系统的限制,有效降低了数据后续利用的成本。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种将树形嵌套数据转换为平面数据
表的方法的流程示意图;图2为本专利技术实施例提供的一种树形嵌套结构示意图;图3为本专利技术实施例提供的一种定位后的树形嵌套数据结构示意图;图4为本专利技术实施例提供的一种抽取后的原语链表结构示意图;图5为本专利技术实施例提供的一种合并后的单个原语树结构示意图;图6为本专利技术实施例提供的一种遍历后的第一类抽取原语树结构示意图;图7为本专利技术实施例提供的一种遍历后的第二类抽取原语树结构示意图;图8为本专利技术实施例提供的一种具体应用场景下的合并后的单个原语树结构示意图;图9为本专利技术实施例提供的一种具体应用场景下的抽取原语树结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为克服现有技术中的缺陷,本申请实施例提供一种将树形嵌套数据转换为平面数据表的方法,用于自动将树形嵌套数据转换为平面数据表,有效降低了数据后续利用的成本。实施例一如图1所示,为本专利技术实施例中提供的一种将树形嵌套数据转换为平面数据表的方法,具体步骤如下:S101,将待转换的信息字段集合中的各个信息字段分别定位到树形数据结构中的叶节点。对于树形结构来说,节点包括根节点、枝节点和叶节点,各个阶段上均对应不同的字段名,其中叶节点的字段名对应关联有具体的数据,各枝节点(或称中间节点,即,除根节点和叶节点外的中间的节点)则都是信息组,除了包含下级字段节点以外自身并不关联任何数据。如图2示出了一个树形嵌套结构的定义例子:其中/表示数据对象根,而a~i各个字母表示不同级别上的字段名,字段名后的*表示该字段下有同构节点组或者该字段本身包含同构多值信息。在本实施例中,假设待转换的信息字段集合中的各个信息字段的信息分别为对应于叶节点b、c、e、f、h、i中,则将各个信息字段分别定位到树形数据结构中的叶节点b、c、e、f、h、i。如图3所示,为定位后对应的实际数据的示意图。S102,遍历树形结构,获得从根节点到各个所述叶节点的路径。由图2或图3所得到的路径如下所示:/a-b;/a-c;/a-d-e;/a-d-f;/g-h;/g-i。S103,为待导出的各个所述路径的各个节点生成相应的抽取原语,并将所述抽取原语按照S102所构成的路径串联成原语链表。其中,当所述节点其下有同构节点组或者其对应的字段包含同构多值信息时(如图2所示带有*的字段名a、c、d)时,则为所述节点额外生成新的一级ITER原语。在本申请中,将其下有同构节点组或者其对应的字段包含同构多值信息的节点称为可取多值节点。本实施例中使用如下数据抽取原语:CID-生成预设公共字段;CTX(key)-将当前工作对象设为指定key对应的数据对象,同时将key作为当前本文档来自技高网...
【技术保护点】
一种将树形嵌套数据转换为平面数据表的方法,其特征在于,包括以下步骤:A、将待转换的信息字段集合中包含的各个信息字段分别定位到所述信息字段对应在所述树形数据嵌套结构中的各个叶节点;B、获取从根节点到各个所述叶节点的各条路径;C、根据所述各条路径生成各条原语链表;D、将所述原语链表合并为单个原语树;E、遍历所述单个原语树的各个节点,以获取各个抽取原语树;F、执行所述各个抽取原语树,以获取所述各个抽取原语树对应的各个平面数据表。
【技术特征摘要】
1.一种将树形嵌套数据转换为平面数据表的方法,其特征在于,包括以下步骤:A、将待转换的信息字段集合中包含的各个信息字段分别定位到所述信息字段对应在所述树形数据嵌套结构中的各个叶节点;B、获取从根节点到各个所述叶节点的各条路径;C、根据所述各条路径生成各条原语链表;D、将所述原语链表合并为单个原语树;E、遍历所述单个原语树的各个节点,以获取各个抽取原语树;F、执行所述各个抽取原语树,以获取所述各个抽取原语树对应的各个平面数据表。2.根据权利要求1所述的方法,其特征在于,所述步骤C包括:C1、生成所述各条路径的各个节点对应的抽取原语;C2、将所述各条路径的各个节点对应的抽取原语分别串联成原语链表。3.根据权利要求2所述的方法,其特征在于,所述步骤C1还包括:当判断所述路径中的枝节点或叶节点为可取多值节点时,为所述枝节点或叶节点增加生成一级ITER抽取原语;其中,所述可取多值节点为其下有同构节点组或者其本身包含同构多值信息的节点;所述ITER为:将当前工作对象作为列表遍历,将每个元素作为新的环境数据对象,同时将元素下标生成以当前环境名称命名的列。4.根据权利要求3所述的方法,其特征在于,所述步骤C1还包括:当判断所述路径中的节点为叶节点时,若所述叶节点对应的字段包含同构多值信息,则生成JSON原语;若所述叶节点对应的字段为单值信息,则生成S...
【专利技术属性】
技术研发人员:王晓哲,曹代军,罗立刚,
申请(专利权)人:零氪科技北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。