CN110955429B - 一种数据解析方法及装置 - Google Patents
一种数据解析方法及装置 Download PDFInfo
- Publication number
- CN110955429B CN110955429B CN201811122455.5A CN201811122455A CN110955429B CN 110955429 B CN110955429 B CN 110955429B CN 201811122455 A CN201811122455 A CN 201811122455A CN 110955429 B CN110955429 B CN 110955429B
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- template table
- preset
- template
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据解析方法及装置,涉及数据处理技术领域,为解决现有的json数据解析方式,需要解析程序每次从数据库少量读取json数据进行解析后再写入数据库,导致数据解析效率较低的问题。本发明的方法包括:从待解析数据中抽取预设维度的有效数据;将所述有效数据写入预先构建的父模板表,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中;根据所述第一数据表对所述待解析数据进行解析。本发明适合应用在json数据的解析中。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据解析方法及装置。
背景技术
随着互联网技术的日益发展,大数据应用越来广泛。在大数据时代下,数据的保存、交互、传输等一直是业界中颇为关注的点。其中,在数据交换时存在一种数据格式JSON(JavaScript Object Notation,JavaScript对象表示法),它是一种基于文本,独立于语言的轻量级数据交换格式,相比于数据交换格式XML,JSON没有附加的任何标记,因此在JS中可作为对象处理,用户更倾向于选择JSON来交换数据,并且在实际应用中,需要对JSON数据进行解析后使用。
目前,在对json数据进行解析时,需要解析程序首先从数据库中读取json数据,解析程序再通过建模解析数据,在解析完成后将数据再写入数据库。由于解析线程每次解析时数据处理量较少,因此在对数据库中的json数据进行解析时需要解析程序与数据库频繁读写数据完成解析,使得数据解析效率较低。
发明内容
鉴于上述问题,本发明提供一种数据解析方法及装置,主要目的在于利用在保存有json数据的数据库中预先构建的模板表对json数据进行解析。
为解决上述技术问题,第一方面,本发明提供了一种数据解析方法,该方法包括:
从待解析数据中抽取预设维度的有效数据;
将所述有效数据写入预先构建的父模板表,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中;
根据所述第一数据表对所述待解析数据进行解析。
可选的,所述有效数据中包含有至少一组数据,所述每组数据由所述预设维度下的数据构成,且所述每组数据由不同的标识信息进行区分;以及
所述父模板表的配置过程如下:
确定与所述标识信息以及各个所述预设维度分别对应的行/列位置;
根据所述标识信息以及各个所述预设维度分别对应的行/列位置生成所述父模板表。
可选的,所述将所述有效数据写入预先构建的父模板表包括:
调用所述数据库中的预置函数,将所述有效数据中的标识信息以及各个预设维度下的数据按照所述标识信息以及各个所述预设维度分别对应的行/列位置依次写入所述父模板表;
根据所述标识信息生成与所述各组数据分别对应的序列号。
可选的,所述根据所述第一数据表对所述待解析数据进行解析包括:
若所述父模板表中的某个预设维度下嵌套有预设的子模板表,则根据所述子模板表分别对所述第一数据表中对应预设维度下的数据进行解析,得到对应的至少一个子数据表;
若所述子模板表下没有预设的嵌套子模板表,则根据所述序列号将所述子数据表和所述第一数据表进行关联,得到关联数据表;
若所述子模板表下存在预设的嵌套子模板表,则根据所述嵌套子模板表对该嵌套子模板表对应的数据进行进一步的解析,直至获取的每个所述子数据表均不存在嵌套,再根据所述序列号将每个所述不存在嵌套的子模板表和所述第一数据表进行关联,得到关联数据表。
可选的,所述利用所述子模板表和所述第一数据表对所述待解析数据进行解析包括:
从所述关联数据表中提取与所述子模板表对应的所述行/列中的数据作为所述待解析数据解析后的数据。
第二方面,本发明还提供了一种数据解析装置,该装置包括:
抽取单元,用于从待解析数据中抽取预设维度的有效数据;
写入单元,用于将所述有效数据写入预先构建的父模板表,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中;
解析单元,用于根据所述第一数据表对所述待解析数据进行解析。
可选的,所述有效数据中包含有至少一组数据,所述每组数据由所述预设维度下的数据构成,且所述每组数据由不同的标识信息进行区分,以及所述装置还包括:
确定单元,用于确定与所述标识信息以及各个所述预设维度分别对应的行/列位置;
生成单元,用于根据所述标识信息以及各个所述预设维度分别对应的行/列位置生成所述父模板表。
可选的,所述写入单元包括:
写入模块,用于调用所述数据库中的预置函数,将所述有效数据中的标识信息以及各个预设维度下的数据按照所述标识信息以及各个所述预设维度分别对应的行/列位置依次写入所述父模板表;
生成模块,用于根据所述标识信息生成与所述各组数据分别对应的序列号。
可选的,所述解析单元包括:
第一解析模块,用于若所述父模板表中的某个预设维度下嵌套有预设的子模板表,则根据所述子模板表分别对所述第一数据表中对应预设维度下的数据进行解析,得到对应的至少一个子数据表;
关联模块,用于若所述子模板表下没有预设的嵌套子模板表,则根据所述序列号将所述子数据表和所述第一数据表进行关联,得到关联数据表;
第二解析模块,用于若所述子模板表下存在预设的嵌套子模板表,则根据所述嵌套子模板表对该嵌套子模板表对应的数据进行进一步的解析,直至获取的每个所述子数据表均不存在嵌套,再根据所述序列号将每个所述不存在嵌套的子模板表和所述第一数据表进行关联,得到关联数据表。
可选的,
所述解析单元,具体用于从所述关联数据表中提取与所述子模板表对应的所述行/列中的数据作为所述待解析数据解析后的数据。
为了实现上述目的,根据本发明的第三方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的数据解析方法。
为了实现上述目的,根据本发明的第四方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的数据解析方法。
借由上述技术方案,本发明提供的数据解析方法及装置,对于现有技术在对json数据解析时需要解析程序从数据库中读取json数据,在解析完成后再将json数据写入数据库,由于解析程序每次处理的数据量较少,因此需要解析程序与数据库进行多次读写交互操作而造成的数据解析效率较低的问题,本发明通过从待解析数据中根据需求抽取预设维度的有效数据,并将抽取到的有效数据写入保存待解析数据的数据库中预先构建的模板表中,得到与有效数据对应的第一数据表,并利用该第一数据表在数据库中对待解析数据进行解析,因此相比于现有技术,本发明只需要在数据库中预先构建并保存父模板表,并将有效数据写入该模板表即可实现对数据的解析,并且数据库中的各个父模板表可以对相同预设维度的有效数据进行批量处理,从而提高了数据解析的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据解析方法流程图;
图2示出了本发明实施例提供的另一种数据解析方法流程图;
图3示出了本发明实施例提供的一种数据解析装置的组成框图;
图4示出了本发明实施例提供的另一种数据解析装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了提高数据解析的效率,本发明实施例提供了一种数据解析方法,如图1所示,该方法包括:
101、从待解析数据中抽取预设维度的有效数据。
其中,所述待解析数据为json数据,而所述json数据为一种数据结构。对于本发明实施例,json数据可以为从众多数据获取渠道中采集并转换为json结构保存在数据库中的,从而在本步骤中可以直接从数据库中获取到待解析数据之后,根据不同需求从待解析数据中抽取有效数据,而有效数据可以根据不同的应用场景确定,例如待解析数据为从某个网页中抓取的数据,而其中包含有在过去一周时间内页面中包含各个视频分别对应的点击量、收藏量、下载量,以及该页面下的弹窗数据和广告数据,此时抽取的有效数据可以为页面中各个视频对应的点击量、收藏量和下载量。
102、将所述有效数据写入预先构建的父模板表。
进一步地,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中。而本步骤中所述的父模板表可以为用于写入全部有效数据的表,也就是说父模板表中包含有与上述步骤中抽取到的有效数据中包含的预设维度分别对应的行/列。
例如,从待解析数据中抽取到的有效数据为网页M中包含的全部商品的销售信息和关注信息,则在本步骤中可以将有效数据写入与之对应的父模板表中,如下表1所示:
表1
需要说明的是,对于本发明实施例可以预先在保存待解析数据的数据库中构建并保存多个父模板表,并根据不同的应用场景选择匹配的模板表并将有效数据写入父模板表中进行解析。具体地,本步骤可以为调用postgresql的json解析函数将有效数据写入到预先构建的父模板表中,通过调用预置函数将有效数据写入预先创建的模板表,简化了数据解析的开发过程。
103、根据所述第一数据表对所述待解析数据进行解析。
对于本发明实施例,本步骤可以根据与有效数据对应的父模板表中是否嵌套有子模板表,确定是否生成相应的子数据表,如果父模板表中没有嵌套的子模板表,则直接从父模板表中抽取相应的行/列完成对数据的解析,如果存在子模板表,则将子模板表与父模板表进行关联后对数据进行解析。
对于本发明实施例,在利用模板表对待解析数据进行解析之后,可以将解析后的数据保存在数据表中的,还可以提取解析后的数据并直接保存在数据库中,本发明实施例对此不做具体限定。
本发明实施例提供的数据解析方法,对于现有技术在对json数据解析时需要解析程序从数据库中读取json数据,在解析完成后再将json数据写入数据库,由于解析程序每次处理的数据量较少,因此需要解析程序与数据库进行多次读写交互操作而造成的数据解析效率较低的问题,本发明通过从待解析数据中根据需求抽取预设维度的有效数据,并将抽取到的有效数据写入保存待解析数据的数据库中预先构建的模板表中,得到与有效数据对应的第一数据表,并利用该第一数据表在数据库中对待解析数据进行解析,因此相比于现有技术,本发明只需要在数据库中预先构建并保存父模板表,并将有效数据写入该模板表即可实现对数据的解析,并且数据库中的各个父模板表可以对相同预设维度的有效数据进行批量处理,从而提高了数据解析的效率。
进一步的,作为对图1所示实施例的细化及扩展,本发明实施例还提供了另一种数据解析方法,如图2所示。
201、从待解析数据中抽取预设维度的有效数据。
其中,所述待解析数据为json数据。而所述有效数据的概念解释和本步骤的具体实施方式可以参考所述步骤101中相应描述,在此不再赘述。此外,本步骤中抽取到的有效数据中包含有至少一组数据,并且每组数据由预设维度下的数据构成,每组数据由不同的标识信息进行区分。
需要说明的是,json数据中可以包含有多个json对象,其中,json对象以“{”(左括号)开始、以“}”(右括号)结束,在JSON对象中包含多个键/值(key/alue)对,每个键/值对由字段名称(键)以及该字段名称对应的数据内容(值)组成,以“字段名称/数据内容(即键/值)”的形式来表达,字段名称和该字段名称对应的数据内容之间用“:”来分隔,多个键/值对之间用“,”来分隔,例如,一个JSON对象可以为“{name1:value1,name2:value2,name3:value3}”。其中,字段名称对应的数据内容可以为字符串、数值、对象、数组、布尔值或者NULL值。
因此,对于本步骤中获取到的有效数据,可以按照有效数据中包含的json对象划分有效数据中的各组数据,例如,抽取到的有效数据为:
{
"文章标题":"庆祝火箭发射成功",
"关注信息":[
{
"日期":"2018-1-1",
"阅读量":18,
"收藏量":10
},
{
"日期":"2018-1-2",
"阅读量":11,
"收藏量":4
}
],
"urls":[
{
"url":"http:/xxx1"
},
{
"url":"http:/xxx2"
}
]
},
{
"文章标题":"爱国需要理性","关注信息":[
{
"日期":"2018-1-3",
"阅读量":100,
"收藏量":20
},
{
"日期":"2018-1-5",
"阅读量":35,
"收藏量":9
}
],
"urls":[
{
"url":"http:/xxx3"
},
{
"url":"http:/xxx4"
}
]
}
]
}
}
则可以按照json对象将有效数据划分为两组数据,且两组数据的标识信息可以由首个json对象的字段名称确定,分别为“庆祝火箭发射成功”和“爱国需要理性”。此外,有效数据中包含的各组数据均包含有相同的预设维度,具体地预设维度可以由各组数据中的json对象确定,如上述json数据,各组数据的特征维度为“关注信息”和“urls”。
202、确定与所述标识信息以及各个所述预设维度分别对应的行/列位置。
例如对于上述步骤获取到的有效数据,其中各组数据的标识信息和预设维度分别为文章标题、关注信息和urls,则此时为该有效数据配置的父模板表如表2所示:
表2
文章标题 | 关注信息 | urls |
…… | …… | …… |
203、根据所述标识信息以及各个所述预设维度分别对应的行/列位置生成所述父模板表。
需要说明的是,对于现有技术中在对json数据进行解析时,需要解析程序根据不同的语言环境建模,而后解析程序与数据库进行读写交互操作,以便于实现对不同语言的json数据的解析,而解析程序建模消耗的时间和内存较大,且每次解析线程处理的数据量较少。而本发明实施例通过在数据库中配置相应的模板表,并利用该模板表即可实现对json数据的解析,能够适用于不同语言环境下的json数据,并且无需解析程序与数据库之间进行读写交互操作,且在数据库中可以对数据进行批量处理,从而节约了网络资源且极大的提高了数据解析的性能和效率。
204、调用所述数据库中的预置函数,将所述有效数据中的标识信息以及各个预设维度下的数据按照所述标识信息以及各个所述预设维度分别对应的行/列位置依次写入所述父模板表。
其中,当数据库为postgresql数据库时,预置函数可以为postgresql数据库中的json解析函数。
205、根据所述标识信息生成与所述各组数据分别对应的序列号。
例如如上述步骤201中抽取到的有效数据,在步骤204中将有效数据写入父模板表并在本步骤中生成序列号,则可以得到如下表3所示:
表3
根据本步骤的方法,在父模板表中增加序列号将不同组的数据进行划分,以便于在利用模板表对数据进行解析时,能够分别对json数据中的json对象进行解析,避免了对无序json数据直接解析造成的数据处理错误的问题,从而提高了数据解析的准确性。
206、根据所述第一数据表对所述待解析数据进行解析。
具体地,若所述父模板表中的某个预设维度下嵌套有预设的子模板表,则根据所述子模板表分别对所述第一数据表中对应预设维度下的数据进行解析,得到对应的至少一个子数据表。
需要说明的是,当某个预设维度下仍然存在多维度数据时,则该维度下嵌套有子模板表,例如有效数据中的预设维度“销量”中包含的数据为“本月销量”和“历史销量”,则此时预设维度“销量”中嵌套有预设的子模板表。同样的,本步骤中预设的子模板表为预先根据数据库中的json数据包含的json对象和json数组构建并保存在数据库中,从而在数据解析时可以直接将预设维度下的数据写入子模板表并完成对数据的解析,简化了数据解析的开发,且提高了数据解析的效率。而当父模板表中的各个预设维度下均不存在预设嵌套子模板表时,则可以直接将有效数据写入父模板表并进行解析。
具体地,本步骤可以为将各组数据中各个特征维度下的数据依次写入相应的预设子模板表中,并在子模板表中同样设置序列号行/列,以便于利用子模板表对各组数据的处理。如上述示例,获取到的有效数据中的预设维度“关注信息”和“urls”下包含的json数组分别为日期、阅读量、收藏量和url,则此时将预设维度下的数据写入预设子模板表可以为如下表4至表7所示:
表4
日期 | 阅读量 | 收藏量 | 序列号 |
2018/1/1 | 18 | 10 | 1 |
2018/1/2 | 11 | 4 | 1 |
表5
日期 | 阅读量 | 收藏量 | 序列号 |
2018/1/3 | 100 | 20 | 2 |
2018/1/5 | 35 | 9 | 2 |
表6
url | 序列号 |
http:/xxx1 | 1 |
http:/xxx2 | 1 |
表7
url | 序列号 |
http:/xxx3 | 2 |
http:/xxx4 | 2 |
对于本发明实施例,可以根据具体的应用场景创建相应的父模板表,进一步的,可以将各类不同的模板表在数据库中进行统一保存管理,以便于在之后采集到json数据之后可以直接根据json数据所述类别调用相应的模板表直接使用,进一步提高了数据解析的效率。
进一步地,若所述子模板表下存在预设的嵌套子模板表,所述步骤206可以包括:根据所述嵌套子模板表对该嵌套子模板表对应的数据进行进一步的解析,直至获取的每个所述子数据表均不存在嵌套,再根据所述序列号将每个所述不存在的嵌套子模板表和所述第一数据表进行关联,得到关联数据表。
对于本发明实施例,当子模板表下仍然存在嵌套子模板表时,则利用嵌套子模板表进一步解析,直至在各层级的模板表中不存在嵌套关系后再进行关联,从而确保数据解析时得到的均为不可划分的最小数据单元,确保了数据解析的准确性。
若所述子模板表下没有预设的嵌套子模板表,所述步骤206可以包括;根据所述序列号将所述子数据表和所述第一数据表进行关联,得到关联数据表。
具体地,将子数据表与第一数据表进行关联可以为将第一数据表和子模板表中序列号相同的行/列依次进行关联,最终得到本步骤中的关联数据表。如上述示例,将父模板表和四个子模板表进行关联,可以得到如下表8所示的关联数据表。
表8
207、从所述关联数据表中提取与所述子模板表对应的所述行/列中的数据作为所述待解析数据解析后的数据。
需要说明的是,在本步骤提取包含有json数据中json对象和json数组的行/列,而将中间数据对应的行/列摒弃,实现对json数据的解析。如上述示例在上述步骤206中得到数据关联表之后,则在本步骤中可以提取第1、5、6、7、8列数据,得到待解析数据解析后的数据。
此外,在本发明实施例中可以将解析后的数据保存在可以将解析后的数据保存在数据表中的,还可以提取解析后的数据并直接保存在数据库中,本发明实施例对此不做具体限定。
但需要说明的是,上述应用场景所述的具体实施方式仅仅是示例性的,并非本发明实施例的唯一具体实施方式,在此仅为符合本发明所述的方法的优化实施方式之一。
进一步的,作为对上述图1所示方法的实现,本发明实施例还提供了一种数据解析装置,用于对上述图1所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图3所示,该装置包括:抽取单元31、写入单元32、解析单元33,其中
抽取单元31,可以用于从待解析数据中抽取预设维度的有效数据。
写入单元32,可以用于将所述抽取单元31抽取到的有效数据写入预先构建的父模板表,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中。
解析单元33,可以用于根据所述写入单元32写入有效数据后得到的第一数据表对所述待解析数据进行解析。
进一步的,作为对上述图2所示方法的实现,本发明实施例还提供了另一种数据解析装置,用于对上述图2所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图4所示,该装置包括:抽取单元41、写入单元42、解析单元43,其中
抽取单元41,可以用于从待解析数据中抽取预设维度的有效数据。
写入单元42,可以用于将所述抽取单元41抽取到的有效数据写入预先构建的父模板表,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中。
解析单元43,可以用于根据所述写入单元42写入有效数据后得到的第一数据表对所述待解析数据进行解析。
进一步的,所述装置还包括:确定单元44、生成单元45。
所述确定单元44,可以用于确定与所述标识信息以及各个所述预设维度分别对应的行/列位置。
所述生成单元45,可以用于根据所述标识信息以及各个所述预设维度分别对应的行/列位置生成所述父模板表。
进一步的,
所述写入单元42,具体可以用于调用所述数据库中的预置函数,将所述有效数据中的标识信息以及各个预设维度下的数据按照所述标识信息以及各个所述预设维度分别对应的行/列位置依次写入所述父模板表。
所述生成单元45,还可以用于根据所述标识信息生成与所述各组数据分别对应的序列号。
进一步的,所述解析单元43,具体可以用于若所述父模板表中的某个预设维度下嵌套有预设的子模板表,则根据所述子模板表分别对所述第一数据表中对应预设维度下的数据进行解析,得到对应的至少一个子数据表。
进一步的,所述解析单元43包括:
第一解析模块4301,可以用于根据所述嵌套子模板表对该嵌套子模板表对应的数据进行进一步的解析,直至获取的每个所述子数据表均不存在嵌套。
第一关联模块4302,可以用于根据所述序列号将每个所述不存在的嵌套子模板表和所述第一数据表进行关联,得到关联数据表。
进一步的,所述解析单元43包括:
第二关联模块4303,可以用于根据所述序列号将所述子数据表和所述第一数据表进行关联,得到关联数据表。
进一步的,所述装置还包括:提取单元46。
所述提取单元46,可以用于从所述关联数据表中提取与所述子模板表对应的所述行/列中的数据作为所述待解析数据解析后的数据。
本发明实施例提供的另一种数据解析装置。所述装置包括:抽取单元、写入单元及解析单元。对于现有技术在对json数据解析时需要解析程序从数据库中读取json数据,在解析完成后再将json数据写入数据库,由于解析程序每次处理的数据量较少,因此需要解析程序与数据库进行多次读写交互操作而造成的数据解析效率较低的问题,本发明通过从待解析数据中根据需求抽取预设维度的有效数据,并将抽取到的有效数据写入保存待解析数据的数据库中预先构建的模板表中,得到与有效数据对应的第一数据表,并利用该第一数据表在数据库中对待解析数据进行解析,因此相比于现有技术,本发明只需要在数据库中预先构建并保存父模板表,并将有效数据写入该模板表即可实现对数据的解析,并且数据库中的各个父模板表可以对相同预设维度的有效数据进行批量处理,从而提高了数据解析的效率。
所述文本处理装置包括处理器和存储器,上述抽取单元31、写入单元32、计解析单元33等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高json数据解析的效率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据解析方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据解析方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:从待解析数据中抽取预设维度的有效数据;将所述有效数据写入预先构建的父模板表,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中;根据所述第一数据表对所述待解析数据进行解析。
进一步的,所述有效数据中包含有至少一组数据,所述每组数据由所述预设维度下的数据构成,且所述每组数据由不同的标识信息进行区分;以及
所述父模板表的配置过程如下:
确定与所述标识信息以及各个所述预设维度分别对应的行/列位置;
根据所述标识信息以及各个所述预设维度分别对应的行/列位置生成所述父模板表。
进一步的,所述将所述有效数据写入预先构建的父模板表包括:
调用所述数据库中的预置函数,将所述有效数据中的标识信息以及各个预设维度下的数据按照所述标识信息以及各个所述预设维度分别对应的行/列位置依次写入所述父模板表;
根据所述标识信息生成与所述各组数据分别对应的序列号。
进一步的,所述根据所述第一数据表对所述待解析数据进行解析包括:
若所述父模板表中的某个预设维度下嵌套有预设的子模板表,则根据所述子模板表分别对所述第一数据表中对应预设维度下的数据进行解析,得到对应的至少一个子数据表;
若所述子模板表下没有预设的嵌套子模板表,则根据所述序列号将所述子数据表和所述第一数据表进行关联,得到关联数据表;
若所述子模板表下存在预设的嵌套子模板表,则根据所述嵌套子模板表对该嵌套子模板表对应的数据进行进一步的解析,直至获取的每个所述子数据表均不存在嵌套,再根据所述序列号将每个所述不存在嵌套的子模板表和所述第一数据表进行关联,得到关联数据表。
进一步的,所述利用所述子模板表和所述第一数据表对所述待解析数据进行解析包括:
从所述关联数据表中提取与所述子模板表对应的所述行/列中的数据作为所述待解析数据解析后的数据。
本发明实施例中的设备可以是服务器、PC、PAD、手机等。
本发明实施例还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:从待解析数据中抽取预设维度的有效数据;将所述有效数据写入预先构建的父模板表,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中;根据所述第一数据表对所述待解析数据进行解析。
进一步的,所述有效数据中包含有至少一组数据,所述每组数据由所述预设维度下的数据构成,且所述每组数据由不同的标识信息进行区分;以及
所述父模板表的配置过程如下:
确定与所述标识信息以及各个所述预设维度分别对应的行/列位置;
根据所述标识信息以及各个所述预设维度分别对应的行/列位置生成所述父模板表。
进一步的,所述将所述有效数据写入预先构建的父模板表包括:
调用所述数据库中的预置函数,将所述有效数据中的标识信息以及各个预设维度下的数据按照所述标识信息以及各个所述预设维度分别对应的行/列位置依次写入所述父模板表;
根据所述标识信息生成与所述各组数据分别对应的序列号。
进一步的,所述根据所述第一数据表对所述待解析数据进行解析包括:
若所述父模板表中的某个预设维度下嵌套有预设的子模板表,则根据所述子模板表分别对所述第一数据表中对应预设维度下的数据进行解析,得到对应的至少一个子数据表;
若所述子模板表下没有预设的嵌套子模板表,则根据所述序列号将所述子数据表和所述第一数据表进行关联,得到关联数据表;
若所述子模板表下存在预设的嵌套子模板表,则根据所述嵌套子模板表对该嵌套子模板表对应的数据进行进一步的解析,直至获取的每个所述子数据表均不存在嵌套,再根据所述序列号将每个所述不存在嵌套的子模板表和所述第一数据表进行关联,得到关联数据表。
进一步的,所述利用所述子模板表和所述第一数据表对所述待解析数据进行解析包括:
从所述关联数据表中提取与所述子模板表对应的所述行/列中的数据作为所述待解析数据解析后的数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (7)
1.一种数据解析方法,其特征在于,所述方法包括:
从待解析数据中抽取预设维度的有效数据;
将所述有效数据写入预先构建的父模板表,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中;
根据所述第一数据表对所述待解析数据进行解析;
所述有效数据中包含有至少一组数据,所述每组数据由所述预设维度下的数据构成,且所述每组数据由不同的标识信息进行区分;以及
所述父模板表的配置过程如下:
确定与所述标识信息以及各个所述预设维度分别对应的行/列位置;
根据所述标识信息以及各个所述预设维度分别对应的行/列位置生成所述父模板表;
所述根据所述第一数据表对所述待解析数据进行解析包括:
若所述父模板表中的某个预设维度下嵌套有预设的子模板表,则根据所述子模板表分别对所述第一数据表中对应预设维度下的数据进行解析,得到对应的至少一个子数据表;
若所述子模板表下没有预设的嵌套子模板表,则根据序列号将所述子数据表和所述第一数据表进行关联,得到关联数据表;
若所述子模板表下存在预设的嵌套子模板表,则根据所述嵌套子模板表对该嵌套子模板表对应的数据进行进一步的解析,直至获取的每个所述子数据表均不存在嵌套,再根据所述序列号将每个所述不存在嵌套的子模板表和所述第一数据表进行关联,得到关联数据表。
2.根据权利要求1所述的方法,其特征在于,所述将所述有效数据写入预先构建的父模板表包括:
调用所述数据库中的预置函数,将所述有效数据中的标识信息以及各个预设维度下的数据按照所述标识信息以及各个所述预设维度分别对应的行/列位置依次写入所述父模板表;
根据所述标识信息生成与所述各组数据分别对应的序列号。
3.根据权利要求1所述的方法,其特征在于,利用所述子模板表和所述第一数据表对所述待解析数据进行解析包括:
从所述关联数据表中提取与所述子模板表对应的所述行/列中的数据作为所述待解析数据解析后的数据。
4.一种数据解析装置,其特征在于,所述装置包括:
抽取单元,用于从待解析数据中抽取预设维度的有效数据;
写入单元,用于将所述有效数据写入预先构建的父模板表,得到第一数据表,其中所述父模板表为根据所述预设维度配置的与所述有效数据对应的模板表,且所述父模板表保存在所述待解析数据所在的数据库中;
解析单元,用于根据所述第一数据表对所述待解析数据进行解析;
所述有效数据中包含有至少一组数据,所述每组数据由所述预设维度下的数据构成,且所述每组数据由不同的标识信息进行区分,以及所述装置还包括:
确定单元,用于确定与所述标识信息以及各个所述预设维度分别对应的行/列位置;
生成单元,用于根据所述标识信息以及各个所述预设维度分别对应的行/列位置生成所述父模板表;
所述解析单元,具体可以用于若所述父模板表中的某个预设维度下嵌套有预设的子模板表,则根据所述子模板表分别对所述第一数据表中对应预设维度下的数据进行解析,得到对应的至少一个子数据表;
所述解析单元包括:
第一解析模块,用于若所述子模板表下存在预设的嵌套子模板表,则根据所述嵌套子模板表对该嵌套子模板表对应的数据进行进一步的解析,直至获取的每个所述子数据表均不存在嵌套;
第一关联模块,用于根据序列号将每个所述不存在的嵌套子模板表和所述第一数据表进行关联,得到关联数据表;
所述解析单元还包括:
第二关联模块,用于若所述子模板表下没有预设的嵌套子模板表,则根据所述序列号将所述子数据表和所述第一数据表进行关联,得到关联数据表。
5.根据权利要求4所述的装置,其特征在于,所述写入单元包括:
写入模块,用于调用所述数据库中的预置函数,将所述有效数据中的标识信息以及各个预设维度下的数据按照所述标识信息以及各个所述预设维度分别对应的行/列位置依次写入所述父模板表;
生成模块,用于根据所述标识信息生成与所述各组数据分别对应的序列号。
6.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求3中任意一项所述的数据解析方法。
7.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求3中任意一项所述的数据解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811122455.5A CN110955429B (zh) | 2018-09-26 | 2018-09-26 | 一种数据解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811122455.5A CN110955429B (zh) | 2018-09-26 | 2018-09-26 | 一种数据解析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955429A CN110955429A (zh) | 2020-04-03 |
CN110955429B true CN110955429B (zh) | 2023-07-14 |
Family
ID=69962334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811122455.5A Active CN110955429B (zh) | 2018-09-26 | 2018-09-26 | 一种数据解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955429B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012173745A (ja) * | 2011-02-17 | 2012-09-10 | Mitsubishi Electric Corp | データベース解析装置及びデータベース解析プログラム |
CN104765742A (zh) * | 2014-01-06 | 2015-07-08 | 阿里巴巴集团控股有限公司 | 一种信息展示的方法及装置 |
CN107220096A (zh) * | 2017-04-20 | 2017-09-29 | 北京小度信息科技有限公司 | 一种json数据解析方法及装置 |
CN108241642A (zh) * | 2016-12-23 | 2018-07-03 | 北京国双科技有限公司 | 文件解析方法和装置 |
-
2018
- 2018-09-26 CN CN201811122455.5A patent/CN110955429B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012173745A (ja) * | 2011-02-17 | 2012-09-10 | Mitsubishi Electric Corp | データベース解析装置及びデータベース解析プログラム |
CN104765742A (zh) * | 2014-01-06 | 2015-07-08 | 阿里巴巴集团控股有限公司 | 一种信息展示的方法及装置 |
CN108241642A (zh) * | 2016-12-23 | 2018-07-03 | 北京国双科技有限公司 | 文件解析方法和装置 |
CN107220096A (zh) * | 2017-04-20 | 2017-09-29 | 北京小度信息科技有限公司 | 一种json数据解析方法及装置 |
Non-Patent Citations (1)
Title |
---|
超详细JSON解析步骤;miaozhenzhong;《CSDN https://blog.csdn.net/miaozhenzhong/article/details/52585726》;20160919;第1-8页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110955429A (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649316B (zh) | 一种视频推送方法及装置 | |
US8812947B1 (en) | Ranking graphical visualizations of a data set according to data attributes | |
US20190065444A1 (en) | Techniques for efficient & high-throughput web content-creation | |
CN109597983A (zh) | 一种拼写纠错方法及装置 | |
CN110020236B (zh) | 网页解析方法、装置、存储介质、处理器和设备 | |
CN110019784B (zh) | 一种文本分类方法及装置 | |
CN104899203B (zh) | 一种网页页面的生成方法、装置及终端设备 | |
CN107391528A (zh) | 前端组件依赖信息搜索方法及设备 | |
CN108255891B (zh) | 一种判别网页类型的方法及装置 | |
CN110955429B (zh) | 一种数据解析方法及装置 | |
CN107025233B (zh) | 一种数据特征的处理方法及装置 | |
CN111125087B (zh) | 数据的存储方法及装置 | |
CN111125157B (zh) | 查询数据的处理方法、装置、存储介质及处理器 | |
WO2016147219A1 (ja) | テキスト可視化システム、テキスト可視化方法、及び、記録媒体 | |
CN110929188A (zh) | 服务端页面渲染方法及装置 | |
CN110990799A (zh) | 一种反爬虫的数据处理方法、装置、系统及存储介质 | |
CN110968500A (zh) | 一种测试用例的执行方法及装置 | |
CN113127766B (zh) | 广告兴趣词的获取方法、装置、存储介质和处理器 | |
CN110851746B (zh) | 爬虫种子生成方法及装置 | |
CN113051333A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112380117A (zh) | 一种软件测试基础用例的生产方法、装置和电子设备 | |
CN107544980B (zh) | 一种查找网页的方法及装置 | |
US10423636B2 (en) | Relating collections in an item universe | |
CN111914199A (zh) | 一种页面元素过滤方法、装置、设备及存储介质 | |
CN111125155B (zh) | 基于访问路径的数据查询方法、装置、存储介质及处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |