CN106201643B - 数据解析方法及装置 - Google Patents
数据解析方法及装置 Download PDFInfo
- Publication number
- CN106201643B CN106201643B CN201610556269.7A CN201610556269A CN106201643B CN 106201643 B CN106201643 B CN 106201643B CN 201610556269 A CN201610556269 A CN 201610556269A CN 106201643 B CN106201643 B CN 106201643B
- Authority
- CN
- China
- Prior art keywords
- data
- resolved
- parsing
- code
- parsing code
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供的一种数据解析方法及装置,通过从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。从而能够实现对与数据源相应的总解析代码的自动生成,提高解析效率。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种数据解析方法及装置。
背景技术
数据解析是从大量的原始数据抽取出有价值的信息,即数据转换成信息的过程。在现有的数据解析的过程中,开发人员需要针对数据的不同格式,手工编写与不同格式相应的解析代码,并使用该解析代码对数据进行解析,数据解析的耗费时间长,效率低。
发明内容
针对上述提及的现有的数据解析的耗费时间长,效率低的问题,本发明提供一种数据解析方法,包括:
从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;
根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;
在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;
根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;
将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。
进一步地,所述数据描述语言包括:第一语法和第二语法;
所述根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件,包括:
根据所述第一语法,对所述待解析数据中的待解析字段进行处理,获得所述待解析字段在所述待解析数据中的位置和所述待解析字段的特征信息;
根据所述第二语法,对所述待解析数据相应的格式标识符进行判定,获得所述待解析数据的数据格式信息;
根据所述待解析字段在所述待解析数据中的位置、所述待解析字段的特征信息以及所述待解析数据的数据格式信息,生成数据描述文件。
进一步地,所述在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板,包括:
在所述在预设的解析代码模板库中,查询获得与所述数据描述文件中的所述待解析字段的特征信息对应的解析代码模板。
进一步地,所述根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码,包括:
根据所述待解析字段在所述待解析数据中的位置以及所述待解析字段的特征信息对应的所述解析代码模板,生成所述待解析数据的解析代码。
进一步地,所述将每种格式的待解析数据所对应的解析代码进行合并,生成总解析代码,包括:
建立每种格式的待解析数据的数据格式信息和所述待解析数据对应的解析代码之间的映射关系;
根据所述映射关系和全部解析代码,生成总解析代码。
进一步地,所述数据描述语言还包括预设的保存位置信息;
所述生成数据描述文件之后,还包括:
将生成的所述数据描述文件保存在所述预设的保存位置信息指示的位置。
进一步地,所述生成总解析代码之后,还包括:
根据所述总解析代码和预设的代码框架,生成代码块;
对所述代码块进行编译,生成可执行代码。
进一步地,所述对所述代码块进行编译,生成可执行代码之后,还包括:
根据所述可执行代码对所述数据源中的各格式的待解析数据依次解析,生成所述数据源的解析数据。
另一方面,本发明还提供一种数据解析装置,包括:
数据获取模块,用于从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;
描述文件生成模块,用于根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;
解析代码模板匹配模块,用于在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;
解析代码生成模块,用于根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;
所述解析代码生成模块,还用于将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。
进一步地,所述数据描述语言包括:第一语法和第二语法;
所述描述文件生成模块,还用于:
根据所述第一语法,对所述待解析数据中的待解析字段进行处理,获得所述待解析字段在所述待解析数据中的位置和所述待解析字段的特征信息;根据所述第二语法,对所述待解析数据相应的格式标识符进行判定,获得所述待解析数据的数据格式信息;
根据所述待解析字段在所述待解析数据中的位置、所述待解析字段的特征信息以及所述待解析数据的数据格式信息,生成数据描述文件。
进一步地,所述解析代码模板匹配模块,还用于:
在所述在预设的解析代码模板库中,查询获得与所述数据描述文件中的所述待解析字段的特征信息对应的解析代码模板。
进一步地,所述解析代码生成模块,还用于:
根据所述待解析字段在所述待解析数据中的位置以及所述待解析字段的特征信息对应的所述解析代码模板,生成所述待解析数据的解析代码。
进一步地,所述解析代码生成模块,还用于:
建立每种格式的待解析数据的数据格式信息和所述待解析数据对应的解析代码之间的映射关系;
根据所述映射关系和全部解析代码,生成总解析代码。
进一步地,所述数据描述语言还包括预设的保存位置信息;
所述描述文件生成模块,还用于在所述生成数据描述文件之后,将生成的所述数据描述文件保存在所述预设的保存位置信息指示的位置。
进一步地,所述数据解析装置还包括:可执行代码生成模块;
所述可执行代码生成模块,用于在所述生成总解析代码之后,根据所述总解析代码和预设的代码框架,生成代码块;对所述代码块进行编译,生成可执行代码。
进一步地,所述数据解析装置还包括:解析模块;
所述解析模块,用于在所述对所述代码块进行编译,生成可执行代码之后,根据所述可执行代码对所述数据源中的各格式的待解析数据依次解析,生成所述数据源的解析数据。
本发明提供的数据解析方法及装置,通过从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。从而能够实现对与数据源相应的总解析代码的自动生成,提高解析效率。
附图说明
图1为本发明实施例一提供的一种数据解析方法的流程示意图;
图2为本发明实施例二提供的一种数据解析方法的流程示意图;
图3为本发明实施例三提供的一种数据解析方法的流程示意图;
图4为本发明实施例四提供的一种数据解析装置的结构示意图;
图5为本发明实施例五提供的一种数据解析装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明实施例一提供一种数据解析方法的流程示意图,如图1所示,该方法包括:
步骤101、从数据源中获取待解析数据。
其中,所述数据源中包括一种或一种以上格式的待解析数据。
具体的,在数据解析过程中,当对一个数据源进行解析处理时,可根据数据源中各数据的格式对数据源进行分解,并获得待解析数据,其中,每条待解析数据可对应一种格式,而数据源中包括一种或一种以上格式的待解析数据。
步骤102、根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件。
具体的,当获得一种或一种以上格式的待解析数据之后,根据预设的数据描述语言对每种待解析数据进行描述,形成用于记录该待解析数据特征的数据描述文件。
步骤103、在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板。
具体的,在预设的解析代码模板库中存储有各类型的解析代码模板,根据获得的待解析数据的数据描述文件,在解析代码模板库中查询与之匹配的解析代码模板。
步骤104、根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码。
具体的,根据查询获得的与数据描述文件匹配的所述解析代码模板以及该数据描述文件,生成用于解析所述待解析数据的解析代码,该解析代码用于解析与数据描述文件所描述的待解析数据。
步骤105、将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。
具体的,由于数据源中包括有一种或一种以上格式的待解析数据,将生成的每种格式所对应的解析代码进行合并,并生成可用于解析该数据源的总解析代码。
本发明实施例一提供的数据解析方法,通过从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。从而能够实现对与数据源相应的总解析代码的自动生成,提高解析效率。
进一步地,为了进一步描述本发明的技术方案,图2为本发明实施例二提供的一种数据解析方法的流程示意图,如图2所示,该方法包括:
步骤201、从数据源中获取待解析数据。
其中,所述数据源中包括一种或一种以上格式的待解析数据。
具体的,在数据解析过程中,当对一个数据源进行解析处理时,可根据数据源中各数据的格式对数据源进行分解,并获得待解析数据,其中,每条待解析数据可对应一种格式,而数据源中包括一种或一种以上格式的待解析数据。
步骤202、根据所述第一语法,对所述待解析数据中的待解析字段进行处理,获得所述待解析字段在所述待解析数据中的位置和所述待解析字段的特征信息。
步骤203、根据所述第二语法,对所述待解析数据相应的格式标识符进行判定,获得所述待解析数据的数据格式信息。
步骤204、根据所述待解析字段在所述待解析数据中的位置、所述待解析字段的特征信息以及所述待解析数据的数据格式信息,生成数据描述文件。
上述步骤202-204为根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件的一种具体实施方式。其中,数据描述语言包括:第一语法和第二语法。
具体来说,在步骤202中,在获得待解析数据之后,根据所述第一语法,对所述待解析数据中的待解析字段进行处理,获得所述待解析字段在所述待解析数据中的位置和所述待解析字段的特征信息。进一步来说,第一语法可理解为可将待解析数据中的待解析字段的位置和特征信息从待解析数据中提取和描述出来的一种语法,其具体可通过本领域技术人员通过实际情况进行自定义撰写,并以函数的形式进行表达。需要说明的是,待解析数据中可包括有多个待解析字段,每一个待解析字段在待解析数据中处于不同的位置,同时,每一个待解析字段自身还具有例如包括待解析字段所表达的含义在内的特征信息。
在步骤203中,还根据所述第二语法,对所述待解析数据相应的格式标识符进行判定,获得所述待解析数据的数据格式信息。进一步来说,第二语法可理解为将待解析数据相应的格式标识符提取和描述出来的一种语法,其具体可通过本领域技术人员通过实际情况进行自定义撰写,并以函数的形式进行表达。需要说明的是,由于数据源中包括有一种或一种以上的待解析数据,而每个待解析数据对应一种数据格式。根据第二语法可将用于标识该数据格式的格式标识符进行提取,并根据该格式标识符的具体数值对数据格式类型进行判定,以获得所述待解析数据的数据格式信息。
在步骤204中,根据所述待解析字段在所述待解析数据中的位置、所述待解析字段的特征信息以及所述待解析数据的数据格式信息,生成数据描述文件。具体来说,将待解析数据中的每个待解析字段的位置和特征信息,以及该待解析数据的数据格式信息进行串联组合,生成用于描述该待解析数据相关信息的数据描述文件。
优选地,所述数据描述语言还包括预设的保存位置信息;具体的,在步骤204的所述生成数据描述文件之后,还包括:将生成的所述数据描述文件保存在所述预设的保存位置信息指示的位置。其中,保存位置信息可为本领域技术人员预先设置的,在利用数据描述语言中的第一语法和第二语法对所述待解析数据进行描述,并生成数据描述文件之后,该数据描述文件将按照预设的保存位置信息保存在相应位置。
步骤205、在所述在预设的解析代码模板库中,查询获得与所述数据描述文件中的所述待解析字段的特征信息对应的解析代码模板。
具体来说,上述步骤205为在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板的一种具体实施方式。当获取到待解析数据相应的数据描述文件之后,根据数据描述文件中的待解析字段的特征信息,在预设的解析代码模板库中查询与之相应的解析代码模板。其中,解析代码模板可理解为用于生成解析代码的解析函数,预设的解析代码模板库则可理解为存储有各类型解析函数的解析函数库。根据特征信息的不同,每一个待解析字段均对应一种解析函数。根据每一个待解析字段的特征信息,在预设的解析代码模板库中查询并获得与该特征信息相应的,能够根据该待解析字段生成相应解析代码的解析代码模板。
步骤206、根据所述待解析字段在所述待解析数据中的位置以及所述待解析字段的特征信息对应的所述解析代码模板,生成所述待解析数据的解析代码。
具体来说,上述步骤206为根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码的一种具体实施方式。当获得待解析数据中的每个待解析字段所对应的解析代码模板之后,将每个待解析字段在待解析数据中的位置以及对应的解析代码模板进行重组,生成整个待解析数据的解析代码。简单来说,可根据待解析字段在待解析数据中的位置定义一位置函数,以使在生成待解析数据的解析代码的过程中,每个待解析字段相应的解析代码模板能与该待解析字段所对应。也就是说,解析代码模板通过该位置函数知道其需要对哪个待解析字段进行解析。通过将每个待解析字段在待解析数据中的位置以及对应的解析代码模板进行重组,以生成整个待解析数据的解析代码。
步骤207、建立每种格式的待解析数据的数据格式信息和所述待解析数据对应的解析代码之间的映射关系。
步骤208、根据所述映射关系和全部解析代码,生成总解析代码。
上述步骤207-208为将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码的一种具体实施方式。
具体来说,在步骤207-208中,由于数据源中包括有一种或一种以上格式的待解析数据,而每种待解析数据均存在有与之相应的数据格式信息以及与之相应的解析代码。针对同一个待解析数据,建立其数据格式信息与其解析代码之间的映射关系,例如,映射关系列表等。根据该映射关系和全部解析代码,生成总解析代码。在使用该总解析代码对数据源进行解析时,当解析到某一待解析数据时,可根据该待解析数据的数据格式找到映射关系中相应的数据格式信息并快速定位至相应的解析代码,并利用该解析代码对该待解析数据进行解析。
本发明实施例二提供了一种数据解析方法的具体实施方式,通过从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;根据所述第一语法,对所述待解析数据中的待解析字段进行处理,获得所述待解析字段在所述待解析数据中的位置和所述待解析字段的特征信息;根据所述第二语法,对所述待解析数据相应的格式标识符进行判定,获得所述待解析数据的数据格式信息;根据所述待解析字段在所述待解析数据中的位置、所述待解析字段的特征信息以及所述待解析数据的数据格式信息,生成数据描述文件;在所述在预设的解析代码模板库中,查询获得与所述数据描述文件中的所述待解析字段的特征信息对应的解析代码模板;根据所述待解析字段在所述待解析数据中的位置以及所述待解析字段的特征信息对应的所述解析代码模板,生成所述待解析数据的解析代码;建立每种格式的待解析数据的数据格式信息和所述待解析数据对应的解析代码之间的映射关系;根据所述映射关系和全部解析代码,生成总解析代码。,本实施例二提供的数据解析方法采用第一语法和第二语法对待解析数据进行描述形成数据描述文件,并根据数据描述文件中的待解析字段的特征信息查找对应的解析代码模板之后,将对应的解析代码模板根据待解析字段在待解析数据中的位置,并生成待解析数据的解析代码。因此在提高整体解析效率的同时,生成解析代码与待解析数据的匹配度更高,且提高了根据各全部解析代码与映射关系生成的总解析代码的解析准确度。
进一步地,在上述实施例一或二的基础上,图3为本发明实施例三提供的一种数据解析方法的流程示意图,如图3所示,该方法包括:
步骤301、从数据源中获取待解析数据。
其中,所述数据源中包括一种或一种以上格式的待解析数据。
具体的,在数据解析过程中,当对一个数据源进行解析处理时,可根据数据源中各数据的格式对数据源进行分解,并获得待解析数据,其中,每条待解析数据可对应一种格式,而数据源中包括一种或一种以上格式的待解析数据。
步骤302、根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件。
具体的,当获得一种或一种以上格式的待解析数据之后,根据预设的数据描述语言对每种待解析数据进行描述,形成用于记录该待解析数据特征的数据描述文件。
步骤303、在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板。
具体的,在预设的解析代码模板库中存储有各类型的解析代码模板,根据获得的待解析数据的数据描述文件,在解析代码模板库中查询与之匹配的解析代码模板。
步骤304、根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码。
具体的,根据查询获得的与数据描述文件匹配的所述解析代码模板以及该数据描述文件,生成用于解析所述待解析数据的解析代码,该解析代码用于解析与数据描述文件所描述的待解析数据。
步骤305、将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。
具体的,由于数据源中包括有一种或一种以上格式的待解析数据,将生成的每种格式所对应的解析代码进行合并,并生成可用于解析该数据源的总解析代码。
需要说明的是,本实施例三中的步骤301-305的具体实施方式可参见实施例二中的步骤201-208部分。
步骤306、根据所述总解析代码和预设的代码框架,生成代码块。
具体来说,将获得的用于解析数据源的总解析代码与预设的代码框架进行组合,生成基于云环境的代码块。其中,预设的代码框架中配置有云环境运行条件,数据输入函数和数据输出函数等,预设的代码框架所使用的程序语言与生成总解析代码所使用的语言保持一致。
步骤307、对所述代码块进行编译,生成可执行代码。
具体来说,对获得的代码块进行包括语义检查,语法检查在内的纠错,以实现对代码块的编译,获得可执行代码。该可执行代码可被部署至云环境中,用于实现分布式解析海量多格式数据源。
步骤308、根据所述可执行代码对所述数据源中的各格式的待解析数据依次解析,生成所述数据源的解析数据。
具体来说,在生成可执行代码之后,将该可执行代码部署在云环境中。当包含有多格式的待解析数据的数据源被输入至该云环境时,利用该可执行代码对数据源中的各格式的待解析数据进行逐条解析,并得到数据源的解析数据,以便利用该解析数据对数据源进行分析。
本发明实施例三提供的数据解析方法,通过从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码;根据所述总解析代码和预设的代码框架,生成代码块;对所述代码块进行编译,生成可执行代码;根据所述可执行代码对所述数据源中的各格式的待解析数据依次解析,生成所述数据源的解析数据。从而能够实现对与数据源相应的总解析代码的自动生成以及对数据源的相应解析数据的自动生成,进一步提高解析效率。
图4为本发明实施例四提供的一种数据解析装置的结构示意图,如图4所示,该装置包括:数据获取模块10,描述文件生成模块20,解析代码模板匹配模块30和解析代码生成模块40。
其中,数据获取模块10用于从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;
描述文件生成模块20用于根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;
解析代码模板匹配模块30用于在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;
解析代码生成模块40用于根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;
所述解析代码生成模块40还用于将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。
具体的,在数据解析装置运行过程中,当对一个数据源进行解析处理时,数据获取模块10用于根据数据源中各数据的格式对数据源进行分解,并获得待解析数据,其中,每条待解析数据可对应一种格式,而数据源中包括一种或一种以上格式的待解析数据。在描述文件生成模块20接收数据获取模块10获取的一种或一种以上格式的待解析数据之后,描述文件生成模块20还用于根据预设的数据描述语言对每种待解析数据进行描述,形成用于记录该待解析数据特征的数据描述文件。解析代码模板匹配模块30中存储有预设的解析代码模板库,该预设的解析代码模板库中存储有各类型的解析代码模板,解析代码模板匹配模块30用于根据接收的由描述文件生成模块20获得的待解析数据的数据描述文件,在解析代码模板库中查询与之匹配的解析代码模板。解析代码生成模块40用于根据接收的由解析代码模板匹配模块30查询获得的与数据描述文件匹配的所述解析代码模板以及由描述文件生成模块20生成的数据描述文件,生成解析代码,其中,该解析代码用于解析与数据描述文件相应的被描述的待解析数据。由于数据源中包括有一种或一种以上格式的待解析数据,解析代码生成模块40还用于将生成的每种格式所对应的解析代码进行合并,并生成可用于解析该数据源的总解析代码。
本发明实施例四提供的数据解析装置,通过从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。从而能够实现对与数据源相应的总解析代码的自动生成,提高解析效率。
优选地,上述实施例四中数据解析装置,还包括:
所述描述文件生成模块20,还用于:根据所述第一语法,对所述待解析数据中的待解析字段进行处理,获得所述待解析字段在所述待解析数据中的位置和所述待解析字段的特征信息;根据所述第二语法,对所述待解析数据相应的格式标识符进行判定,获得所述待解析数据的数据格式信息;根据所述待解析字段在所述待解析数据中的位置、所述待解析字段的特征信息以及所述待解析数据的数据格式信息,生成数据描述文件。
其中,描述文件生成模块20中的数据描述语言包括:第一语法和第二语法。
具体来说,描述文件生成模块20用于根据所述第一语法,对接收到的由数据获取模块10获得的待解析数据中的待解析字段进行处理,获得所述待解析字段在所述待解析数据中的位置和所述待解析字段的特征信息。其中,第一语法可理解为可将待解析数据中的待解析字段的位置和特征信息从待解析数据中提取和描述出来的一种语法,其具体可通过本领域技术人员通过实际情况进行自定义撰写,并以函数的形式进行表达。需要说明的是,待解析数据中可包括有多个待解析字段,每一个待解析字段在待解析数据中处于不同的位置,同时,每一个待解析字段自身还具有例如包括待解析字段所表达的含义在内的特征信息。
描述文件生成模块20还用于根据所述第二语法,对所述待解析数据相应的格式标识符进行判定,获得所述待解析数据的数据格式信息。其中,第二语法可理解为将待解析数据相应的格式标识符提取和描述出来的一种语法,其具体可通过本领域技术人员通过实际情况进行自定义撰写,并以函数的形式进行表达。需要说明的是,由于数据源中包括有一种或一种以上的待解析数据,而每个待解析数据对应一种数据格式。描述文件生成模块20用于根据第二语法可将用于标识该数据格式的格式标识符进行提取,并根据该格式标识符的具体数值对数据格式类型进行判定,以获得所述待解析数据的数据格式信息。
此外,描述文件生成模块20还用于根据所述待解析字段在所述待解析数据中的位置、所述待解析字段的特征信息以及所述待解析数据的数据格式信息,生成数据描述文件。具体来说,描述文件生成模块20将待解析数据中的每个待解析字段的位置和特征信息,以及该待解析数据的数据格式信息进行串联组合,生成用于描述该待解析数据相关信息的数据描述文件。
进一步地,所述解析代码模板匹配模块30,还用于:在所述在预设的解析代码模板库中,查询获得与所述数据描述文件中的所述待解析字段的特征信息对应的解析代码模板。
具体来说,当描述文件生成模块20获取到待解析数据相应的数据描述文件之后,解析代码模板匹配模块30用于根据数据描述文件中的待解析字段的特征信息,在预设的解析代码模板库中查询与之相应的解析代码模板。其中,解析代码模板可理解为用于生成解析代码的解析函数,预设的解析代码模板库则可理解为存储有各类型解析函数的解析函数库。根据特征信息的不同,每一个待解析字段均对应一种解析函数。描述文件生成模块20根据每一个待解析字段的特征信息,在预设的解析代码模板库中查询并获得与该特征信息相应的,能够根据该待解析字段生成相应解析代码的解析代码模板。
进一步地,所述解析代码生成模块40,还用于:根据所述待解析字段在所述待解析数据中的位置以及所述待解析字段的特征信息对应的所述解析代码模板,生成所述待解析数据的解析代码。
具体的,当解析代码模板匹配模块30获得待解析数据中的每个待解析字段所对应的解析代码模板之后,解析代码生成模块40用于将每个待解析字段在待解析数据中的位置以及对应的解析代码模板进行重组,生成整个待解析数据的解析代码。简单来说,可根据待解析字段在待解析数据中的位置定义一位置函数,以使在生成待解析数据的解析代码的过程中,每个待解析字段相应的解析代码模板能与该待解析字段所对应。也就是说,解析代码生成模块40中的解析代码模板可通过该位置函数知道其需要对哪个待解析字段进行解析。通过将每个待解析字段在待解析数据中的位置以及对应的解析代码模板进行重组,以生成整个待解析数据的解析代码。
进一步地,所述解析代码生成模块40,还用于:建立每种格式的待解析数据的数据格式信息和所述待解析数据对应的解析代码之间的映射关系;根据所述映射关系和全部解析代码,生成总解析代码。
具体来说,由于数据源中包括有一种或一种以上格式的待解析数据,而每种待解析数据均存在有与之相应的数据格式信息以及与之相应的解析代码。针对同一个待解析数据,所述解析代码生成模块40用于建立其数据格式信息与其解析代码之间的映射关系,例如,映射关系列表等。根据该映射关系和全部解析代码,生成总解析代码。在使用该总解析代码对数据源进行解析时,当解析到某一待解析数据时,可根据该待解析数据的数据格式找到映射关系中相应的数据格式信息并快速定位至相应的解析代码,并利用该解析代码对该待解析数据进行解析。
进一步地,所述描述文件生成模块20,还用于在所述生成数据描述文件之后,将生成的所述数据描述文件保存在所述预设的保存位置信息指示的位置。
其中,数据描述语言还包括预设的保存位置信息。具体来说,在所述描述文件生成模块20生成数据描述文件之后,还用于:将生成的所述数据描述文件保存在所述预设的保存位置信息指示的位置。其中,保存位置信息可为本领域技术人员预先设置在描述文件生成模块20中的,描述文件生成模块20在利用数据描述语言中的第一语法和第二语法对所述待解析数据进行描述,并生成数据描述文件之后,该数据描述文件将按照预设的保存位置信息保存在相应位置。
进一步地,在上述实施例四的基础上,图5为本发明实施例五提供的一种数据解析装置的结构示意图,如图5所示,该装置包括:数据获取模块10,描述文件生成模块20,解析代码模板匹配模块30,解析代码生成模块40,可执行代码生成模块50和解析模块60。
具体来说,与实施例四相似的,本实施例五提供的数据解析装置中包括,数据获取模块10用于从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;描述文件生成模块20用于根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;解析代码模板匹配模块30用于在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;解析代码生成模块40用于根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;所述解析代码生成模块40还用于将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码。上述模块的具体连接结构与实施方式与实施例四类似,在此不做赘述。
与实施例四不同的是,本实施例五所提供的数据解析装置中还包括有:可执行代码生成模块50和解析模块60。
其中,所述可执行代码生成模块50,用于在所述解析代码生成模块40生成总解析代码之后,根据所述总解析代码和预设的代码框架,生成代码块;对所述代码块进行编译,生成可执行代码。
具体的,可执行代码生成模块50用于将由解析代码生成模块40获得的总解析代码与预设的代码框架进行组合,生成基于云环境的代码块。其中,预设的代码框架是预先存储在可执行代码生成模块50中的,该预设的代码框架中配置有云环境运行条件,数据输入函数和数据输出函数等,预设的代码框架所使用的程序语言与生成总解析代码所使用的语言保持一致。
此外,可执行代码生成模块50还用于对获得的代码块进行包括语义检查,语法检查在内的纠错,以实现对代码块的编译,获得可执行代码。该可执行代码可被部署至云环境中,用于实现分布式解析海量多格式数据源。
优选地,所述解析模块60,用于在所述生成用于解析所述数据源的可执行代码之后,根据所述可执行代码对所述数据源中的各格式的待解析数据依次解析,生成所述数据源的解析数据。
具体来说,在生成可执行代码之后,可执行代码生成模块50将该可执行代码部署在云环境中。当包含有多格式的待解析数据的数据源被输入至该云环境时,解析模块60用于利用该可执行代码对数据源中的各格式的待解析数据进行逐条解析,并得到数据源的解析数据,以便利用该解析数据对数据源进行分析。
本发明实施例五提供的数据解析方法,通过从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码;根据所述总解析代码和预设的代码框架,生成代码块;对所述代码块进行编译,生成可执行代码;根据所述可执行代码对所述数据源中的各格式的待解析数据依次解析,生成所述数据源的解析数据。从而能够实现对与数据源相应的总解析代码的自动生成以及对数据源的准确解析,提高解析效率和解析准确率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种数据解析方法,其特征在于,包括:
从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;
根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;
在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;
根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;
将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码;
其中,所述数据描述语言包括:第一语法和第二语法;
所述根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件,包括:
根据所述第一语法,对所述待解析数据中的待解析字段进行处理,获得所述待解析字段在所述待解析数据中的位置和所述待解析字段的特征信息;
根据所述第二语法,对所述待解析数据相应的格式标识符进行判定,获得所述待解析数据的数据格式信息;
根据所述待解析字段在所述待解析数据中的位置、所述待解析字段的特征信息以及所述待解析数据的数据格式信息,生成数据描述文件;
所述在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板,包括:
在所述在预设的解析代码模板库中,查询获得与所述数据描述文件中的所述待解析字段的特征信息对应的解析代码模板;所述根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码,包括:
根据所述待解析字段在所述待解析数据中的位置以及所述待解析字段的特征信息对应的所述解析代码模板,生成所述待解析数据的解析代码。
2.根据权利要求1所述的数据解析方法,其特征在于,所述将每种格式的待解析数据所对应的解析代码进行合并,生成总解析代码,包括:
建立每种格式的待解析数据的数据格式信息和所述待解析数据对应的解析代码之间的映射关系;
根据所述映射关系和全部解析代码,生成总解析代码。
3.根据权利要求1所述的数据解析方法,其特征在于,所述数据描述语言还包括预设的保存位置信息;
所述生成数据描述文件之后,还包括:
将生成的所述数据描述文件保存在所述预设的保存位置信息指示的位置。
4.根据权利要求1-3任一项所述的数据解析方法,其特征在于,所述生成总解析代码之后,还包括:
根据所述总解析代码和预设的代码框架,生成代码块;
对所述代码块进行编译,生成可执行代码。
5.根据权利要求4所述的数据解析方法,其特征在于,所述对所述代码块进行编译,生成可执行代码之后,还包括:
根据所述可执行代码对所述数据源中的各格式的待解析数据依次解析,生成所述数据源的解析数据。
6.一种数据解析装置,其特征在于,包括:
数据获取模块,用于从数据源中获取待解析数据,所述数据源中包括一种或一种以上格式的待解析数据;
描述文件生成模块,用于根据预设的数据描述语言对所述待解析数据进行描述,生成数据描述文件;
解析代码模板匹配模块,用于在预设的解析代码模板库中,查询获得与所述数据描述文件匹配的解析代码模板;
解析代码生成模块,用于根据所述解析代码模板和所述数据描述文件,生成用于解析所述待解析数据的解析代码;
所述解析代码生成模块,还用于将每种格式的待解析数据对应的解析代码进行合并,生成总解析代码;
其中,所述数据描述语言包括:第一语法和第二语法;
所述描述文件生成模块,还用于:
根据所述第一语法,对所述待解析数据中的待解析字段进行处理,获得所述待解析字段在所述待解析数据中的位置和所述待解析字段的特征信息;根据所述第二语法,对所述待解析数据相应的格式标识符进行判定,获得所述待解析数据的数据格式信息;
根据所述待解析字段在所述待解析数据中的位置、所述待解析字段的特征信息以及所述待解析数据的数据格式信息,生成数据描述文件;
所述解析代码模板匹配模块,还用于:
在所述在预设的解析代码模板库中,查询获得与所述数据描述文件中的所述待解析字段的特征信息对应的解析代码模板;
所述解析代码生成模块,还用于:
根据所述待解析字段在所述待解析数据中的位置以及所述待解析字段的特征信息对应的所述解析代码模板,生成所述待解析数据的解析代码。
7.根据权利要求6所述的数据解析装置,其特征在于,所述解析代码生成模块,还用于:
建立每种格式的待解析数据的数据格式信息和所述待解析数据对应的解析代码之间的映射关系;
根据所述映射关系和全部解析代码,生成总解析代码。
8.根据权利要求6所述的数据解析装置,其特征在于,所述数据描述语言还包括预设的保存位置信息;
所述描述文件生成模块,还用于在所述生成数据描述文件之后,将生成的所述数据描述文件保存在所述预设的保存位置信息指示的位置。
9.根据权利要求6-8任一项所述的数据解析装置,其特征在于,还包括:可执行代码生成模块;
所述可执行代码生成模块,用于在所述生成总解析代码之后,根据所述总解析代码和预设的代码框架,生成代码块;对所述代码块进行编译,生成可执行代码。
10.根据权利要求9所述的数据解析装置,其特征在于,还包括:解析模块;
所述解析模块,用于在所述生成用于解析所述数据源的可执行代码之后,根据所述可执行代码对所述数据源中的各格式的待解析数据依次解析,生成所述数据源的解析数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610556269.7A CN106201643B (zh) | 2016-07-14 | 2016-07-14 | 数据解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610556269.7A CN106201643B (zh) | 2016-07-14 | 2016-07-14 | 数据解析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106201643A CN106201643A (zh) | 2016-12-07 |
CN106201643B true CN106201643B (zh) | 2019-11-05 |
Family
ID=57474422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610556269.7A Active CN106201643B (zh) | 2016-07-14 | 2016-07-14 | 数据解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201643B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106817366A (zh) * | 2016-12-31 | 2017-06-09 | 惠州市蓝微新源技术有限公司 | 一种can文件解析及重新保存方法 |
CN107122183A (zh) * | 2017-04-17 | 2017-09-01 | 上海众开信息科技有限公司 | 业务代码生成方法及装置 |
CN108304193A (zh) * | 2017-08-24 | 2018-07-20 | 智车优行科技(北京)有限公司 | 一种gps数据解析方法及系统 |
CN107977440B (zh) * | 2017-12-07 | 2020-11-27 | 网宿科技股份有限公司 | 一种解析数据文件的方法、装置和系统 |
CN109726388A (zh) * | 2018-05-07 | 2019-05-07 | 深圳壹账通智能科技有限公司 | Pdf文件解析方法、装置、设备及计算机可读存储介质 |
CN110096281B (zh) * | 2019-04-24 | 2023-06-30 | 北京码上趣学科技有限公司 | 代码解析方法、解析服务器、存储介质及装置 |
CN110244956A (zh) * | 2019-06-04 | 2019-09-17 | 北京中亦安图科技股份有限公司 | 数据解析方法、装置以及系统 |
CN110457021B (zh) * | 2019-07-12 | 2023-05-16 | 招商局金融科技有限公司 | 指标数据处理方法、装置及计算机可读存储介质 |
CN110795089A (zh) * | 2019-10-29 | 2020-02-14 | 中国建设银行股份有限公司 | 一种代码生成方法、装置、设备和存储介质 |
CN111079407B (zh) * | 2019-12-13 | 2021-01-15 | 上海众言网络科技有限公司 | 对用户输入的内容进行解析的方法和装置 |
CN111880838B (zh) * | 2020-08-03 | 2024-04-12 | 北京神舟航天软件技术有限公司 | 一种基于模板匹配技术的数据解析方法 |
CN112560038A (zh) * | 2020-12-24 | 2021-03-26 | 深信服科技股份有限公司 | 一种数据解析方法、装置、设备及计算机可读存储介质 |
CN116405091B (zh) * | 2023-04-10 | 2023-12-19 | 北京和德宇航技术有限公司 | 一种遥测数据的解析方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312551A (zh) * | 2012-03-12 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 通用网关接口的测试方法及测试装置 |
CN103473108A (zh) * | 2013-08-12 | 2013-12-25 | 福建富士通信息软件有限公司 | 一种Java代码生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799856B2 (en) * | 2007-06-12 | 2014-08-05 | International Business Machines Corporation | System and method for automatically declaring variables |
-
2016
- 2016-07-14 CN CN201610556269.7A patent/CN106201643B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103312551A (zh) * | 2012-03-12 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 通用网关接口的测试方法及测试装置 |
CN103473108A (zh) * | 2013-08-12 | 2013-12-25 | 福建富士通信息软件有限公司 | 一种Java代码生成方法 |
Non-Patent Citations (1)
Title |
---|
"一个基于Java 的代码生成工具的设计与实现";张静,孔芳,杨季文;《微电子学与计算机》;20071231;第24卷(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106201643A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201643B (zh) | 数据解析方法及装置 | |
CN106528165B (zh) | 代码生成方法及代码生成系统 | |
CN106445795B (zh) | 一种数据库sql效率检测方法及装置 | |
JP5690349B2 (ja) | レコード形式情報の管理 | |
KR101719278B1 (ko) | 비주얼 콘텐츠기반 영상 인식을 위한 딥러닝 프레임워크 및 영상 인식 방법 | |
CN107221328B (zh) | 修改源的定位方法及装置、计算机设备及可读介质 | |
Fioravanti et al. | A study on fault-proneness detection of object-oriented systems | |
CN108153729A (zh) | 一种面向金融领域的知识抽取方法 | |
CN108920140A (zh) | 一种前后端统一校验方法 | |
CN116244410B (zh) | 一种基于知识图谱和自然语言的指标数据分析方法及系统 | |
CN111061696A (zh) | 一种交易报文日志的解析方法及装置 | |
CN109325217B (zh) | 一种文件转换方法、系统、装置及计算机可读存储介质 | |
CN108932225B (zh) | 用于将自然语言需求转换成为语义建模语言语句的方法和系统 | |
CN111723182B (zh) | 一种用于漏洞文本的关键信息抽取方法及装置 | |
CN113138906A (zh) | 一种调用链数据采集方法、装置、设备及存储介质 | |
CN117009232A (zh) | 代码覆盖率测试方法及装置 | |
CN116360794A (zh) | 数据库语言解析方法、装置、计算机设备及存储介质 | |
CN110489740A (zh) | 语义解析方法及相关产品 | |
CN111882419B (zh) | 质检文件的方法、装置及服务器 | |
EP2535813A1 (en) | Method and device for generating an alert during an analysis of performance of a computer application | |
CN112466324A (zh) | 一种情绪分析方法、系统、设备及可读存储介质 | |
CN116842128B (zh) | 一种文本关系抽取方法、装置、计算机设备及存储介质 | |
CN115203057B (zh) | 低代码测试自动化方法、装置、设备及存储介质 | |
CN110618809B (zh) | 一种前端网页输入约束提取方法和装置 | |
CN115795058B (zh) | 一种威胁建模方法、系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |