CN113642311B - 一种数据对比方法、装置、电子设备及存储介质 - Google Patents

一种数据对比方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113642311B
CN113642311B CN202110926448.6A CN202110926448A CN113642311B CN 113642311 B CN113642311 B CN 113642311B CN 202110926448 A CN202110926448 A CN 202110926448A CN 113642311 B CN113642311 B CN 113642311B
Authority
CN
China
Prior art keywords
data
field
type
same field
layer
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
Application number
CN202110926448.6A
Other languages
English (en)
Other versions
CN113642311A (zh
Inventor
刘艳民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202110926448.6A priority Critical patent/CN113642311B/zh
Publication of CN113642311A publication Critical patent/CN113642311A/zh
Application granted granted Critical
Publication of CN113642311B publication Critical patent/CN113642311B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明实施例提供了一种数据对比方法、装置、电子设备及存储介质,所述方法包括:获取待对比的第一数据和第二数据;从第一数据和第二数据中确定相同字段的数据;针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定相同字段的数据对应的处理规则;基于对应的处理规则对每个相同字段的数据进行处理,得到该字段的数据对应的字符串;将每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。由于相同字段的数据对应的字符串进行对比可以忽略字段的条目顺序差异,将数据转换为字符串进行对比,可以忽略格式符号的差异,因此可以找到数据之间的本质差异,更加准确的确定数据的差异。

Description

一种数据对比方法、装置、电子设备及存储介质
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据对比方法、装置、电子设备及存储介质。
背景技术
数据对比在数据处理领域的应用非常广泛,特别是在业务数据方面,在产品迭代过程中,业务数据会发生变动。测试过程中则需要验证这些变动的正确性,因此需要对产品迭代前后的业务数据进行对比来确定差异,进而验证产品迭代是否准确。
目前的数据对比方式中,比对两份数据在相同位置的字符是否一致,不一致则认定为差异。但是在具体业务场景中,文本数据的字段顺序以及换行、空格或tab等格式符号均会导致相同位置处的字符不一致,而这并不是数据本质上的差异,因此,目前的数据对比方式无法准确确定数据的差异。
发明内容
本发明实施例的目的在于提供一种数据对比方法、装置、电子设备及存储介质,以准确确定数据的差异。具体技术方案如下:
第一方面,本发明实施例提供了一种数据对比方法,所述方法包括:
获取待对比的第一数据和第二数据;
从所述第一数据和所述第二数据中确定相同字段的数据;
针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定所述相同字段的数据对应的处理规则;
基于对应的处理规则分别对所述每个相同字段的数据进行处理,得到该字段的数据对应的字符串;
将所述每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。
可选的,所述针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则的步骤,包括:
针对每个相同字段的数据,确定该相同字段的数据的数据类型是否相同;
如果相同,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则;
如果不同,确定该相同字段的数据为所述第一数据和所述第二数据之间的差异。
可选的,所述基于对应的处理规则分别对所述每个相同字段的数据进行处理,得到该字段的数据对应的字符串的步骤,包括:
针对所述每个相同字段的数据,若该字段的数据的类型为非嵌套类型,基于对应的处理规则对该数据进行处理,得到该字段的数据对应的字符串;
若该字段的数据的类型为嵌套类型,针对每层数据,基于对应的处理规则对该层数据进行处理,得到该层数据对应的字符串。
所述将所述每个相同字段的数据所对应的字符串进行对比的步骤,包括:
针对所述每个相同字段的数据,若该字段的数据的类型为嵌套类型,逐层对每层数据对应的字符串进行对比。
可选的,所述基于对应的处理规则对该数据进行处理,得到该层数据对应的字符串的步骤,包括:
若该层数据的类型为简单类型,去除该层数据中的格式符号,得到该层数据对应的字符串,其中,所述简单类型为仅包括数据本质字符及格式符号的数据类型;
若该层数据的类型为所述简单类型的数据构成的集合,去除该集合包括的元素中的格式符号,将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串;
若该层数据的类型为键值对类型,在该层数据包括的键相同的情况下,去除该键对应的值中的格式符号,将去除格式符号后的值确定为该层数据对应的字符串;
若该层数据类型为列表类型,在列表中的元素为所述简单类型的情况下,去除所述元素中的格式符号,将去除后的元素按照预设顺序进行拼接,得到该层数据对应的字符串;在所述列表中的元素为键值对类型的情况下,针对键相同的元素,去除该元素包括的值中的格式符号,将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串。
可选的,所述将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串的步骤,包括:
按照预设编码方式,将去除格式符号后的元素转化为数字;
按照所对应的数字的大小,将所述去除格式符号后的元素进行排序,得到预设顺序;
将所述去除格式符号后的元素按照所述预设顺序进行拼接,得到该层数据对应的字符串。
可选的,所述第一数据和所述第二数据包括多段结构相同的子数据,每段子数据具有数据标识,所述每段子数据包括多个字段的数据;
所述从所述第一数据和所述第二数据中确定相同字段的数据的步骤,包括:
确定所述第一数据和所述第二数据中每段子数据的数据标识;
从数据标识相同的两段子数据中确定相同字段的数据。
第二方面,本发明实施例提供了一种数据对比装置,所述装置包括:
数据获取模块,用于获取待对比的第一数据和第二数据;
字段确定模块,用于从所述第一数据和所述第二数据中确定相同字段的数据;
规则确定模块,用于针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则,其中,所述处理规则为用于将相应数据类型的数据处理得到字符串的规则;
数据处理模块,用于基于对应的处理规则分别对所述每个相同字段的数据进行处理,得到该字段的数据对应的字符串;
数据对比模块,用于将所述每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。
可选的,所述规则确定模块包括:
类型确定单元,用于针对每个相同字段的数据,确定该相同字段的数据的数据类型是否相同;
第一确定单元,用于如果该相同字段的数据的数据类型相同,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则;
第二确定单元,用于如果该相同字段的数据的数据类型不同,确定该相同字段的数据为所述第一数据和所述第二数据之间的差异。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
第四方面,本发明实施例提供了一种计算机可读缓存介质,所述计算机可读缓存介质内缓存有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
本发明实施例提供的方案中,电子设备可以获取待对比的第一数据和第二数据,从第一数据和第二数据中确定相同字段的数据,针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则,其中,处理规则为用于将相应数据类型的数据处理得到字符串的规则。进而基于对应的处理规则对每个相同字段的数据进行处理,得到该字段的数据对应的字符串,将每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。电子设备可以从第一数据和第二数据中确定相同字段的数据,将第一数据和第二数据包括的相同字段的数据进行处理得对应的字符串,进而基于第一数据和第二数据中每个相同字段的数据所对应的字符串得到数据对比结果,由于相同字段的数据对应的字符串进行对比可以忽略字段的条目顺序差异,将数据转换为字符串进行对比,可以忽略格式符号的差异,因此可以找到数据之间的本质差异,更加准确的确定数据的差异。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所提供的一种数据对比方法的流程图;
图2为基于图1所示实施例的数据处理方式的一种具体流程示意图;
图3为基于图2所示实施例的元素拼接方式的一种流程图;
图4为图1所示实施例中步骤S102的一种具体流程图;
图5为本发明实施例所提供的一种数据对比装置的结构示意图;
图6为基于图5所示实施例的第一确定单元的一种具体结构示意图;
图7为本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为了能够准确的确定数据的差异,本发明实施例提供了一种数据对比方法、装置、电子设备以及计算机可读存储介质。下面对本发明实施例所提供的一种数据对比方法进行介绍。
本发明实施例所提供的一种数据对比方法可以应用于任意需要进行数据对比的电子设备,例如可以为电脑、平板电脑、处理器等电子设备,在此不做具体限定。
如图1所示,一种数据对比方法,所述方法包括:
S101,获取待对比的第一数据和第二数据;
S102,从所述第一数据和所述第二数据中确定相同字段的数据;
S103,针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则;
其中,所述处理规则为用于将相应数据类型的数据处理得到字符串的规则。
S104,基于对应的处理规则对所述每个相同字段的数据进行处理,得到该字段的数据对应的字符串;
S105,将所述每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。
可见,本发明实施例提供的方案中,电子设备可以获取待对比的第一数据和第二数据,根据预设的数据类型与处理规则之间的对应关系,确定第一数据和第二数据包括的相同字段的数据对应的处理规则,基于对应的处理规则分别对第一数据和第二数据中每个相同字段的数据进行处理,得到该字段的数据对应的字符串,将第一数据和第二数据中每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。电子设备可以将第一数据和第二数据包括的相同字段的数据进行处理得对应的字符串,进而基于第一数据和第二数据中每个相同字段的数据所对应的字符串得到数据对比结果,由于相同字段的数据对应的字符串进行对比可以忽略字段的条目顺序差异,将数据转换为字符串进行对比,可以忽略格式符号的差异,因此可以找到数据之间的本质差异,更加准确的确定数据的差异。
在需要进行数据对比时,电子设备可以获取待对比的第一数据和第二数据,其中,第一数据和第二数据可以是业务数据,例如,可以为广告系统输入的广告业务数据等,在此不做具体限定。
待对比的第一数据和第二数据一般均为由相同结构的多个子数据组成,每个子数据由多个字段的数据组成,每个字段的数据的数据类型可能不同,可以为string、number、list、dict、bool、null等,在此不做具体限定。
由于不同数据类型的数据具有不同的特点,为了保证处理后得到的字符串能够准确表征数据的实质内容,所以需要采用不同的处理规则将其处理得到对应的字符串。因此,电子设备可以预先确定各个数据类型的数据对应的处理规则,并建立数据类型与处理规则之间的对应关系,即预设的数据类型与处理规则之间的对应关系,以方便后续进行数据对比。
获取了待对比的第一数据和第二数据后,电子设备便可以执行上述步骤 S102,即从第一数据和第二数据中确定相同字段的数据。如果第一数据和第二数据包括不同字段的数据,那么该不同字段的数据即为第一数据和第二数据之间的差异,因此此时可以只考虑第一数据和第二数据包括的相同字段的数据。作为一种实施方式,电子设备可以根据字段标识从第一数据和第二数据中确定相同字段的数据。
例如,第一数据和第二数据中均包括标识为a、b、c、d、e的字段,那么字段a、字段b、字段c、字段d、字段e的数据即为第一数据和第二数据中相同字段的数据。如果第一数据还包括字段f,而第二数据还包括字段g,那么字段 f和字段g的数据也就不是第一数据和第二数据中相同字段的数据,而是第一数据和第二数据之间的差异。
确定了第一数据和第二数据中相同字段的数据后,针对每个相同字段的数据,电子设备可以根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则。其中,该处理规则为能够将相应数据类型的数据处理得到字符串的规则。
例如,预设的数据类型与处理规则之间的对应关系如下表所示:
序号 数据类型 处理规则
1 string、number、null 处理规则A
2 list 处理规则B
N dict 处理规则N
这样,如果第一数据和第二数据包括的相同字段a的数据的数据类型为number,那么电子设备可以根据上表中的对应关系确定字段a的数据对应的处理规则为处理规则A。
在上述步骤S104中,电子设备可以基于在步骤S103中确定的各个相同字段的数据对应的处理规则,分别对第一数据和第二数据中每个相同字段的数据进行处理,得到该字段的数据对应的字符串。
接下来,电子设备便可以将第一数据和第二数据中每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。如果第一数据和第二数据中相同字段的数据所对应的字符串相同,那么便可以确定该字段的数据不存在差异;如果第一数据和第二数据中相同字段的数据所对应的字符串不相同,那么便可以确定该字段的数据存在差异,从而得到数据对比结果。
由于相同字段的数据对应的字符串进行对比可以忽略字段的条目顺序差异,将数据转换为字符串进行对比,可以忽略格式符号的差异,因此可以找到数据之间的本质差异,更加准确的确定数据的差异。
作为本发明实施例的一种实施方式,上述针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则的步骤,可以包括:
针对每个相同字段的数据,确定该相同字段的数据的数据类型是否相同;如果相同,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则;如果不同,确定该相同字段的数据为所述第一数据和所述第二数据之间的差异。
由于第一数据和第二数据中相同字段的数据的数据类型可能不同,例如,一个为非嵌套类型,另一个为嵌套类型,那么在这种情况下,该相同字段的数据必然不同。所以针对每个相同字段的数据,电子设备可以确定该相同字段的数据的数据类型是否相同。
如果该相同字段的数据的数据类型相同,说明该相同字段的数据实质上可能相同也可能不同,需要进行处理得到对应的字符串才能确定,所以电子设备可以继续执行上述根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则的步骤。
如果该相同字段的数据的数据类型不同,那么电子设备可以确定该相同字段的数据为第一数据和第二数据之间的差异。例如,针对第一数据和第二数据中的相同字段a的数据,第一数据中字段a的数据的数据类型为嵌套类型,而第二数据中字段a的数据的数据类型为非嵌套类型,那么电子设备可以确定字段a 的数据为第一数据和第二数据之间的差异。
可见,在本实施例中,针对每个相同字段的数据,电子设备可以确定该相同字段的数据的数据类型是否相同,如果相同,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则;如果不同,则确定该相同字段的数据为第一数据和第二数据之间的差异。这样,可以先将数据类型不同的相同字段筛选出来,以保证后续按照对应的处理规则进行处理的相同字段均为数据类型相同的数据,确保后续数据比对步骤可以顺利进行,并提高数据比对结果的准确性。
作为本发明实施例的一种实施方式,上述基于对应的处理规则对所述每个相同字段的数据进行处理,得到该字段的数据对应的字符串的步骤,可以包括:
针对所述每个相同字段的数据,若该字段的数据的类型为非嵌套类型,基于对应的处理规则对该数据进行处理,得到该字段的数据对应的字符串;若该字段的数据的类型为嵌套类型,针对每层数据,基于对应的处理规则对该层数据进行处理,得到该层的数据对应的字符串。
各个相同字段的数据可能是嵌套类型,也可能是简单类型,即非嵌套类型,对于简单类型的数据,由于其只具有一层数据结构,所以电子设备可以基于该字段的数据的数据类型所对应的处理规则对该数据进行处理,即可以得到该字段的数据对应的字符串。
而对于嵌套类型的数据,由于其具有多层数据结构,为了能够准确地确定该字段的数据所对应的字符串,电子设备可以逐层对该字段的数据进行处理,具体来说,电子设备可以针对每层数据,基于该层数据的数据类型所对应的处理规则对该层数据进行处理,得到该层数据对应的字符串。
在一种情况下,如果某一层数据仍然是嵌套类型,那么同样的,针对该层数据,电子设备可以针对该层数据所包括的每层数据,基于该层数据的数据类型所对应的处理规则对该层数据进行处理,依此类推,直到处理完成嵌套数据的每一层数据。
相应的,上述将所述每个相同字段的数据所对应的字符串进行对比的步骤,可以包括:
针对所述每个相同字段的数据,若该字段的数据的类型为嵌套类型,逐层对每层数据对应的字符串进行对比。
针对每个相同字段的数据,如果该相同字段的数据的类型为嵌套类型,电子设备可以逐层对该字段的数据进行处理,即基于该层数据的数据类型所对应的处理规则对该层数据进行处理,得到该层数据对应的字符串。进而,电子设备可以逐层对每层数据对应的字符串进行对比,如果对应的字符串相同,则说明该层数据的实质是相同的,可以确定该层数据相同。如果该相同字段的数据包括的每层数据均相同,则可以确定该相同字段的数据实质上是相同的。如果存在一层数据或多层数据不同,那么可以确定该相同字段的数据实质上是不同的。
在一种实施方式中,在存在一层数据或多层数据不同的情况下,电子设备还可以记录该不同的数据,以便用户可以查看并快速确定不同数据在第一数据和第二数据中的位置。
可见,在本实施例中,针对第一数据和第二数据中每个相同字段的数据,若该字段的数据的类型为非嵌套类型,电子设备可以基于对应的处理规则对该数据进行处理,得到该字段的数据对应的字符串;若该字段的数据的类型为嵌套类型,针对每层数据,电子设备可以基于对应的处理规则对该层数据进行处理,得到该层数据对应的字符串,进而,可以逐层对每层数据对应的字符串进行对比。这样,无论是非嵌套类型的简单结构的数据还是嵌套类型的复杂结构的数据,电子设备均可以采用适合的处理方式进行处理得到对应的字符串,并基于得到的字符串确定数据对比结果。
作为本发明实施例的一种实施方式,无论是针对上述非嵌套类型的数据还是嵌套类型的数据,均可以根据数据的类型进行相应的处理,以得到对应的字符串。如果是嵌套类型的数据,针对每层数据,均可以按照如下方式进行处理,具体来说,如图2所示,上述基于对应的处理规则对该层数据进行处理,得到该层数据对应的字符串的步骤,可以包括:
S201,若该层数据的类型为简单类型,去除该层数据中的格式符号,得到该层数据对应的字符串;
其中,简单类型为仅包括数据本质字符及格式符号的数据类型。如果该层数据的类型为简单类型,也就是说,该层数据的类型不是集合类型、键值对类型及列表类型的复杂类型数据,而是number、string、bool、null等简单数据类型,由于格式符号对于数据的本质并没有影响,并且简单类型的数据仅包括数据本质字符及格式符号,所以针对简单类型的数据,电子设备可以去除该层数据中的格式符号,便可以得到该数据对应的字符串。其中,格式符号可以包括换行、空格、tab、分节符等各种格式符号。
例如,第一数据中的字段b和字段c的数据显示为:“b”:1,“c: 2,第二数据中的字段b和字段c的数据显示为:“b”:1,“c”:2,由于字段b和字段c的数据的数据类型为number,所以电子设备可以去除该数据中的格式符号空格,得到第一数据和第二数据中的字段b和字段c分别为“b”:1,“c”:2。
S202,若该层数据的类型为所述简单类型的数据构成的集合,去除该集合包括的元素中的格式符号,将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串;
如果该层数据的类型为上述简单类型的数据构成的集合,说明该层数据的结构为简单数据类型的集合结构,例如,可以为number集合、string集合、bool 集合、null集合等。
由于这些简单数据类型的集合结构的数据是多个简单类型的数据组成的集合,其中每个元素均为一个简单类型的数据,所以电子设备可以去除该集合包括的元素中的格式符号,去除格式符号后的元素即仅为字符。进而,电子设备可以将去除格式符号后的元素按照预设顺序进行拼接,便可以得到该层数据对应的字符串。
在一种实施方式中,若该层数据的类型为number集合,电子设备可以去除该集合包括的各个number中的格式符号,将去除格式符号后的number按照各个 number的大小进行排序,可以按照数字从大到小的顺序将各个number进行排序,也可以按照数字从小到大的顺序将各个number进行排序,这都是合理的。
例如,第二数据中的字段c的某层数据去除各个元素中的格式符号后为 {7,15,9,27,39},那么电子设备可以按照数字从大到小的顺序将各个元素进行排序,得到排序结果:39,27,15,9,7。当然也可以按照数字从小到大的顺序将各个元素进行排序,得到排序结果:7,9,15,27,39。
在另一种实施方式中,若该层数据的类型不为number集合,为了方便进行排序和拼接,电子设备可以去除该集合包括的各个元素中的格式符号,将去除格式符号后的各个元素按照一定编码方式转换为数字,然后按照对应的数字从大到小的顺序将去除格式符号后的各个元素进行排序,也可以按照对应的数字从小到大的顺序将去除格式符号后的各个元素进行排序,这都是合理的。其中,上述编码方式可以为ASCII码等,在此不做具体限定。
得到排序结果后,电子设备便可以基于排序结果将该数据包括的去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串。作为一种实施方式,电子设备可以按照排序结果所表示的顺序将该数据包括的去除格式符号后的各个元素进行拼接,得到该层数据对应的字符串。预设顺序也可以是基于该排序结果确定的一种顺序,例如,可以为排序结果所表示的顺序的逆顺序等,在此不做具体限定。
例如,第二数据中的字段c的中的某层数据为{7,15,9,27,39},那么电子设备可以按照数字从大到小的顺序将各个元素进行排序,得到排序结果: 39,27,15,9,7。进而,电子设备可以按照该排序结果所表示的顺序将各个元素进行拼接,得到该数据对应的字符串:39271597。
S203,若该层数据的类型为键值对类型,在该层数据包括的键相同的情况下,去除该键对应的值中的格式符号,将去除格式符号后的值确定为该层数据对应的字符串;
如果该层数据的类型为键值对类型,电子设备可以对比第一数据和第二数据中的该层数据所包括的键是否相同,如果键相同,那么可以去除该键对应的值中的格式符号,进而将去除格式符号后的对应的值确定为该层数据对应的字符串。
例如,第一数据中字段i的数据为g1:z7,mpq1f,第二数据中字段i的数据为g1:z7mpq2f,由于第一数据和第二数据中字段i的数据包括的键均为g1,二者相同,所以电子设备可以去除第一数据中字段i的数据中键g1对应的值z7, mpq1f中的格式符号“,”,得到去除格式符号后的值z7mpq1f,进而将值z7mpq1f 作为第一数据中字段i的数据对应的字符串,将值z7mpq2f作为第二数据中字段 i的数据对应的字符串。
S204,若该层数据类型为列表类型,在列表中的元素为所述简单类型的情况下,去除所述元素中的格式符号,将去除后的元素按照预设顺序进行拼接,得到该层数据对应的字符串;在所述列表中的元素为键值对类型的情况下,针对键相同的元素,去除该元素包括的值中的格式符号,将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串。
如果该层数据的类型为列表类型,那么其会包括多个元素,列表中的各个元素的数据类型可能存在以下几种情况:
第一种情况下,列表中的元素为简单类型,也就是说,列表中的元素不为集合类型、键值对类型及列表类型这些复杂结构的数据,而是为number、string、 bool、null这样的简单结构的数据,那么电子设备可以去除各个元素中的格式符号,将去除后的元素按照预设顺序进行拼接,得到该层数据对应的字符串。
在一种实施方式中,若各个元素的类型为number,电子设备可以去除各个元素中的格式符号,按照各个去除后的元素的大小进行排序,可以按照数字从大到小的顺序将各个去除后的元素进行排序,也可以按照数字从小到大的顺序将各个去除后的元素进行排序,这都是合理的。若各个去除后的元素的类型不为number,为了方便进行排序和拼接,电子设备可以将各个去除后的元素按照一定编码方式转换为数字,然后按照对应的数字从大到小的顺序将各个去除后的元素进行排序,也可以按照对应的数字从小到大的顺序将各个去除后的元素进行排序,这都是合理的。
将各个去除后的元素进行排序后,电子设备可以将列表中的去除后的元素按照预设顺序进行拼接,得到该层数据对应的字符串,其中,该预设顺序可以为排序结果所表示的顺序,当然也可以是基于该排序结果确定的一种顺序,例如,可以为排序结果所表示的顺序的逆顺序等,在此不做具体限定。
第二种情况下,列表中的元素为键值对类型,此时,针对键相同的元素,电子设备可以去除该元素包括的值中的格式符号,将去除格式符号后的元素即去除格式符号后的的值按照预设顺序进行拼接,得到该层数据对应的字符串。将列表中的元素包括去除格式符号后的的值按照预设顺序进行拼接的具体方式与上述将列表中的去除格式符号后的元素按照预设顺序进行拼接的方式相似,在此不再赘述。
例如,第一数据中的第一段子数据的数据如下:
{
"id":number,//
"a":null/number,
"b":null/string,
"c":{
"d":"number",
"e":[{"f1":numer1},{"f2":numer2},{"f3":number3}],
"g":string
}
"h":[
{"i":string1,"j":string2,"k":bool,"l":string/null},
{"i":string1,"j":string2,"k":bool,"l":string/null}],
"m":[number1,number2]
}
那么,针对字段h可以看出,字段h的数据包括一层数据,该层数据的数据类型即为列表类型,具体包括4个键值对类型的元素,即"i":string1、"j":string2、 "k":bool以及"l":string/null,该4个键值的值均不包括格式符号,所以电子设备便可以将该4个键值的值按照预设顺序进行拼接,得到该层数据对应的字符串。假设将该4个键值的值转换为数字分别得到numer1-numer4,并且number3> numer2>numer4>numer1,预设顺序为从大到小的顺序,那么电子设备便可以确定该层数据对应的字符串为bool string2 string/nullstring1。
第三种情况下,列表中的元素仍然为列表类型,或者为集合类型,那么该列表中的元素即为嵌套类型,电子设备则可以按照嵌套类型的数据的处理方式,逐层对各个元素进行处理,在此不再赘述。
在一种实施方式中,针对上述字段c,其包括3个键值对类型的元素,其中,元素e又包括3个键值对类型的数据,虽然字段c的数据为嵌套类型的数据,但是由于其包括的数据均为键值对类型的数据,结构较为固定,所以为了加快数据对比的速度,如果第一数据和第二数据包括的字段c的数据结构相同,电子设备可以直接将字段c包括的各个键值对的值按照一定顺序拼接得到字段c的数据对应的字符串。
可见,在本实施例中,无论相同字段的数据中的每层数据为简单类型、集合类型、键值对类型还是列表类型,电子设备均可以采用对应的处理方式对该层数据进行处理,以得到能够表示数据本质内容的字符串。
作为本发明实施例的一种实施方式,针对上述数据的类型为键值对类型的情况而言,上述方法还可以包括:
在该层数据包括的键不同的情况下,将该层数据确定为所述第一数据与所述第二数据之间的差异。
由于对于键值对类型的数据来说,其包括的键是一个非常重要的组成部分,如果键不同,那么该层数据必然不同,所以电子设备可以将该层数据确定为第一数据与第二数据之间的差异。
例如,第一数据包括字段f中某层数据为f1:string7,第二数据包括字段f 中某层数据为f1’:string7,那么由于字段f中该层数据包括的键不同,电子设备可以确定第一数据和第二数据包括的字段f的数据存在差异。
可见,在本实施例中,若该层数据的类型为键值对类型,在该层数据包括的键不同的情况下,电子设备可以将该层数据确定为第一数据与所述第二数据之间的差异,这样,可以根据键值对类型的数据的特点,快速准确地确定第一数据与第二数据之间的差异。
作为本发明实施例的一种实施方式,如图3所示,上述将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串的步骤,可以包括:
S301,按照预设编码方式,将去除格式符号后的元素转化为数字;
为了确定上述去除格式符号后的元素的拼接顺序,电子设备可以按照预设编码方式,将去除格式符号后的元素转化为数字,其中,预设编码方式可以为ASCII码编码方式等能够将字符转化为数字的编码方式,在此不做具体限定。
S302,按照所对应的数字的大小,将所述去除格式符号后的元素进行排序,得到预设顺序;
将去除格式符号后的元素转化为数字后,由于数字具有大小的关系,因此电子设备可以按照所对应的数字的大小,将去除格式符号后的元素进行排序,得到预设顺序。
电子设备可以按照去除格式符号后的元素所对应的数字从大到小的顺序将去除格式符号后的元素进行排序,当然也可以按照去除格式符号后的元素所对应的数字从小到大的顺序将去除格式符号后的元素进行排序,这都是合理的。
S303,将所述去除格式符号后的元素按照所述预设顺序进行拼接,得到该层数据对应的字符串。
确定了上述预设顺序后,电子设备便可以将去除格式符号后的元素按照该预设顺序进行拼接,得到该层数据对应的字符串。电子设备可以将去除格式符号后的元素按照该预设顺序依次排列,便可以得到该层数据对应的字符串。
可见,在本实施例中,电子设备可以按照预设编码方式,将去除格式符号后的元素转化为数字,按照所对应的数字的大小,将去除格式符号后的元素进行排序,得到预设顺序,进而,可以将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串。这样,可以快速准确地确定该层数据对应的字符串,进一步提高数据对比的效率和数据对比结果的准确度。
作为本发明实施例的一种实施方式,上述第一数据和第二数据可以包括多段结构相同的子数据,每段子数据具有数据标识,且每段子数据包括多个字段的数据。
一般业务数据是包括段结构相同的子数据的,每段子数据包括多个字段的数据,为了标识每段子数据,每段子数据会具有数据标识,其中,数据标识可以为任一能够唯一标识该段子数据的标识,例如,可以为ID、序号等。在上述第一数据的例子中,"id":number即为数据标识。
针对这种情况,如图4所示,上述从所述第一数据和所述第二数据中确定相同字段的数据的步骤,可以包括:
S401,确定所述第一数据和所述第二数据中每段子数据的数据标识;
由于数据标识相同的两段子数据所包括的数据才有对比的必要性,因此,获取了第一数据和第二数据后,电子设备可以确定第一数据和第二数据中每段子数据的数据标识。
S402,从数据标识段子数据中确定相同字段的数据。
确定了第一数据和第二数据中每段子数据的数据标识后,针对数据标识相同的两段子数据,电子设备便可以从中确定相同字段的数据。进而进行后续的处理和对比过程。
可见,在本实施例中,电子设备可以确定第一数据和第二数据中段子数据的数据标识,进而针对数据标识相同的两段子数据,从该数据标识相同的两段子数据中确定相同字段的数据,这样,电子设备可以逐段的对比第一数据和第二数据中的每段子数据,从而准确地确定二者之间的差异。
作为本发明实施例的一种实施方式,在上述确定所述第一数据和所述第二数据中每段子数据的数据标识的步骤之后,上述方法还可以包括:
确定所述第一数据和所述第二数据中不同的数据标识所对应的子数据为所述第一数据与所述第二数据之间的差异。
确定了第一数据和第二数据中每段子数据的数据标识后,如果第一数据和第二数据所包括的数据标识存在不同的数据标识,可能存在三种情况,具体来说,第一数据中具有第二数据中不存在的数据标识,和/或,第二数据中具有第二数据中不存在的数据标识。
针对上述任意一种情况,均说明第一数据和第二数据存在差异,所以电子设备便可以确定第一数据和第二数据中不同的数据标识所对应的子数据为第一数据与第二数据之间的差异,从而快速确定出二者之间的差异。
作为本发明实施例的一种实施方式,获取待对比的第一数据和第二数据后,电子设备可以将第一数据和第二数据加载到内存,将每段子数据的数据标识作为key,对应的该段子数据的具体内容作为value放入一个dict中,进而进行第一数据和第二数据的对比,这样,可以通过自定义对比的第一数据和第二数据的数据结构的方式,可以方便电子设备进行快速准确地数据比对,提高对比结果的准确度。
相应于上述数据对比方法,本发明实施例还提供了一种数据对比装置,下面对本发明实施例所提供的一种数据对比装置进行介绍。
如图5所示,一种数据对比装置,所述装置包括:
数据获取模块510,用于获取待对比的第一数据和第二数据;
字段确定模块520,用于从所述第一数据和所述第二数据中确定相同字段的数据;
规则确定模块530,用于针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则;
其中,所述处理规则为用于将相应数据类型的数据处理得到字符串的规则。
数据处理模块540,用于基于对应的处理规则分别对所述每个相同字段的数据进行处理,得到该字段的数据对应的字符串;
数据对比模块550,用于将所述每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。
可见,本发明实施例提供的方案中,电子设备可以获取待对比的第一数据和第二数据,从第一数据和第二数据中确定相同字段的数据,针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则,其中,处理规则为用于将相应数据类型的数据处理得到字符串的规则。进而基于对应的处理规则分别对每个相同字段的数据进行处理,得到该字段的数据对应的字符串,将每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。电子设备可以从第一数据和第二数据中确定相同字段的数据,将第一数据和第二数据包括的相同字段的数据进行处理得对应的字符串,进而基于第一数据和第二数据中每个相同字段的数据所对应的字符串得到数据对比结果,由于相同字段的数据对应的字符串进行对比可以忽略字段的条目顺序差异,将数据转换为字符串进行对比,可以忽略格式符号的差异,因此可以找到数据之间的本质差异,更加准确的确定数据的差异。
作为本发明实施例的一种实施方式,上述规则确定模块530可以包括:
类型确定单元,用于针对每个相同字段的数据,确定该相同字段的数据的数据类型是否相同;
第一确定单元,用于如果该相同字段的数据的数据类型相同,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则;
第二确定单元,用于如果该相同字段的数据的数据类型不同,确定该相同字段的数据为所述第一数据和所述第二数据之间的差异。
作为本发明实施例的一种实施方式,如图6所示,上述第一确定单元可以包括:
第一处理子单元601,用于针对所述每个相同字段的数据,若该字段的数据的类型为非嵌套类型,基于对应的处理规则对该数据进行处理,得到该字段的数据对应的字符串;
第二处理子单元602,用于若该字段的数据的类型为嵌套类型,针对每层数据,基于对应的处理规则对该数据进行处理,得到该层数据对应的字符串。
上述数据对比模块550,可以包括:
数据对比单元,用于针对所述每个相同字段的数据,若该字段的数据的类型为嵌套类型,逐层对每层数据对应的字符串进行对比。
作为本发明实施例的一种实施方式,上述第二处理子单元602,具体可以用于若该层数据的类型为简单类型,去除该层数据中的格式符号,得到该层数据对应的字符串,其中,所述简单类型为仅包括数据本质字符及格式符号的数据类型;
若该层数据的类型为所述简单类型的数据构成的集合,去除该集合包括的元素中的格式符号,将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串;
若该层数据的类型为键值对类型,在该层数据包括的键相同的情况下,去除该键对应的值中的格式符号,将去除格式符号后的的值确定为该层数据对应的字符串;
若该层数据类型为列表类型,在列表中的元素为所述简单类型的情况下,去除所述元素中的格式符号,将去除后的元素按照预设顺序进行拼接,得到该层数据对应的字符串;在列表中的元素为键值对类型的情况下,针对键相同的元素,去除该元素包括的值中的格式符号,将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串。
作为本发明实施例的一种实施方式,上述第二处理子单元602,具体可以用于按照预设编码方式,将去除格式符号后的元素转化为数字;按照所对应的数字的大小,将所述去除格式符号后的元素进行排序,得到预设顺序;将所述去除格式符号后的元素按照所述预设顺序进行拼接,得到该层数据对应的字符串。
作为本发明实施例的一种实施方式,上述第一数据和所述第二数据包括多段结构相同的子数据,每段子数据具有数据标识,所述每段子数据包括多个字段的数据;
上述字段确定模块520可以包括:
标识确定单元,用于确定所述第一数据和所述第二数据中每段子数据的数据标识;
字段确定单元,用于从数据标识相同的两段子数据中确定相同字段的数据。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现上述任一实施例所述的数据对比方法步骤。
可见,本发明实施例提供的方案中,电子设备可以获取待对比的第一数据和第二数据,从第一数据和第二数据中确定相同字段的数据,针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则,其中,处理规则为用于将相应数据类型的数据处理得到字符串的规则。进而基于对应的处理规则分别对每个相同字段的数据进行处理,得到该字段的数据对应的字符串,将每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。电子设备可以从第一数据和第二数据中确定相同字段的数据,将第一数据和第二数据包括的相同字段的数据进行处理得对应的字符串,进而基于第一数据和第二数据中每个相同字段的数据所对应的字符串得到数据对比结果,由于相同字段的数据对应的字符串进行对比可以忽略字段的条目顺序差异,将数据转换为字符串进行对比,可以忽略格式符号的差异,因此可以找到数据之间的本质差异,更加准确的确定数据的差异。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的缓存装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读缓存介质,该计算机可读缓存介质中缓存有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据对比方法。
可见,本发明实施例提供的方案中,计算机可读缓存介质中缓存的指令在计算机上运行时,使得计算机可以获取待对比的第一数据和第二数据,从第一数据和第二数据中确定相同字段的数据,针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则,其中,处理规则为用于将相应数据类型的数据处理得到字符串的规则。进而基于对应的处理规则分别对每个相同字段的数据进行处理,得到该字段的数据对应的字符串,将每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。电子设备可以从第一数据和第二数据中确定相同字段的数据,将第一数据和第二数据包括的相同字段的数据进行处理得对应的字符串,进而基于第一数据和第二数据中每个相同字段的数据所对应的字符串得到数据对比结果,由于相同字段的数据对应的字符串进行对比可以忽略字段的条目顺序差异,将数据转换为字符串进行对比,可以忽略格式符号的差异,因此可以找到数据之间的本质差异,更加准确的确定数据的差异。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的数据对比方法。
可见,本发明实施例提供的方案中,包含指令的计算机程序产品在计算机上运行时,使得计算机可以获取待对比的第一数据和第二数据,从第一数据和第二数据中确定相同字段的数据,针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则,其中,处理规则为用于将相应数据类型的数据处理得到字符串的规则。进而基于对应的处理规则分别对每个相同字段的数据进行处理,得到该字段的数据对应的字符串,将每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。电子设备可以从第一数据和第二数据中确定相同字段的数据,将第一数据和第二数据包括的相同字段的数据进行处理得对应的字符串,进而基于第一数据和第二数据中每个相同字段的数据所对应的字符串得到数据对比结果,由于相同字段的数据对应的字符串进行对比可以忽略字段的条目顺序差异,将数据转换为字符串进行对比,可以忽略格式符号的差异,因此可以找到数据之间的本质差异,更加准确的确定数据的差异。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以缓存在计算机可读缓存介质中,或者从一个计算机可读缓存介质向另一个计算机可读缓存介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读缓存介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据缓存设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种数据对比方法,其特征在于,所述方法包括:
获取待对比的第一数据和第二数据,其中,所述第一数据和所述第二数据包括多段结构相同的子数据,每段子数据包括多个字段的数据;
根据各个字段的字段标识,从所述第一数据和所述第二数据中确定相同字段的数据;
针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则,其中,所述处理规则为用于将相应数据类型的数据处理得到字符串的规则;
基于对应的处理规则对所述每个相同字段的数据进行处理,去除掉数据中的格式符号,得到该字段的数据对应的字符串;
将所述每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。
2.如权利要求1所述的方法,其特征在于,所述针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则的步骤,包括:
针对每个相同字段的数据,确定该相同字段的数据的数据类型是否相同;
如果相同,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则;
如果不同,确定该相同字段的数据为所述第一数据和所述第二数据之间的差异。
3.如权利要求2所述的方法,其特征在于,所述基于对应的处理规则对所述每个相同字段的数据进行处理,得到该字段的数据对应的字符串的步骤,包括:
针对所述每个相同字段的数据,若该字段的数据的类型为非嵌套类型,基于对应的处理规则对该数据进行处理,得到该字段的数据对应的字符串;
若该字段的数据的类型为嵌套类型,针对每层数据,基于对应的处理规则对该数据进行处理,得到该层数据对应的字符串;
所述将所述每个相同字段的数据所对应的字符串进行对比的步骤,包括:
针对所述每个相同字段的数据,若该字段的数据的类型为嵌套类型,逐层对每层数据对应的字符串进行对比。
4.如权利要求3所述的方法,其特征在于,所述基于对应的处理规则对该数据进行处理,得到该层数据对应的字符串的步骤,包括:
若该层数据的类型为简单类型,去除该层数据中的格式符号,得到该层数据对应的字符串,其中,所述简单类型为仅包括数据本质字符及格式符号的数据类型;
若该层数据的类型为所述简单类型的数据构成的集合,去除该集合包括的元素中的格式符号,将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串;
若该层数据的类型为键值对类型,在该层数据包括的键相同的情况下,去除该键对应的值中的格式符号,将去除格式符号后的值确定为该层数据对应的字符串;
若该层数据类型为列表类型,在列表中的元素为所述简单类型的情况下,去除所述元素中的格式符号,将去除后的元素按照预设顺序进行拼接,得到该层数据对应的字符串;在所述列表中的元素为键值对类型的情况下,针对键相同的元素,去除该元素包括的值中的格式符号,将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串。
5.如权利要求4所述的方法,其特征在于,所述将去除格式符号后的元素按照预设顺序进行拼接,得到该层数据对应的字符串的步骤,包括:
按照预设编码方式,将去除格式符号后的元素转化为数字;
按照所对应的数字的大小,将所述去除格式符号后的元素进行排序,得到预设顺序;
将所述去除格式符号后的元素按照所述预设顺序进行拼接,得到该层数据对应的字符串。
6.如权利要求1-5任一项所述的方法,其特征在于,所述每段子数据具有数据标识;
所述从所述第一数据和所述第二数据中确定相同字段的数据的步骤,包括:
确定所述第一数据和所述第二数据中每段子数据的数据标识;
从数据标识相同的两段子数据中确定相同字段的数据。
7.一种数据对比装置,其特征在于,所述装置包括:
数据获取模块,用于获取待对比的第一数据和第二数据,其中,所述第一数据和所述第二数据包括多段结构相同的子数据,每段子数据包括多个字段的数据;
字段确定模块,用于根据各个字段的字段标识,从所述第一数据和所述第二数据中确定相同字段的数据;
规则确定模块,用于针对每个相同字段的数据,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则,其中,所述处理规则为用于将相应数据类型的数据处理得到字符串的规则;
数据处理模块,用于基于对应的处理规则对所述每个相同字段的数据进行处理,去除掉数据中的格式符号,得到该字段的数据对应的字符串;
数据对比模块,用于将所述每个相同字段的数据所对应的字符串进行对比,得到数据对比结果。
8.如权利要求7所述的装置,其特征在于,所述规则确定模块包括:
类型确定单元,用于针对每个相同字段的数据,确定该相同字段的数据的数据类型是否相同;
第一确定单元,用于如果该相同字段的数据的数据类型相同,根据预设的数据类型与处理规则之间的对应关系,确定该相同字段的数据对应的处理规则;
第二确定单元,用于如果该相同字段的数据的数据类型不同,确定该相同字段的数据为所述第一数据和所述第二数据之间的差异。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。
10.一种计算机可读缓存介质,其特征在于,所述计算机可读缓存介质内缓存有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
CN202110926448.6A 2021-08-12 2021-08-12 一种数据对比方法、装置、电子设备及存储介质 Active CN113642311B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110926448.6A CN113642311B (zh) 2021-08-12 2021-08-12 一种数据对比方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110926448.6A CN113642311B (zh) 2021-08-12 2021-08-12 一种数据对比方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113642311A CN113642311A (zh) 2021-11-12
CN113642311B true CN113642311B (zh) 2023-09-05

Family

ID=78421220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110926448.6A Active CN113642311B (zh) 2021-08-12 2021-08-12 一种数据对比方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113642311B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115357625A (zh) * 2022-09-06 2022-11-18 中国建设银行股份有限公司 结构化数据比对方法、装置、电子设备及存储介质
CN117435509B (zh) * 2023-12-20 2024-04-02 深圳市智慧城市科技发展集团有限公司 接口数据的动态比对方法、动态比对设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017097507A (ja) * 2015-11-19 2017-06-01 富士通株式会社 比較プログラム、情報処理装置および比較方法
CN107015948A (zh) * 2017-03-16 2017-08-04 武汉斗鱼网络科技有限公司 一种日志信息格式化方法及系统
CN110874526A (zh) * 2018-12-29 2020-03-10 北京安天网络安全技术有限公司 一种文件相似性检测方法、装置、电子设备及存储介质
CN112199935A (zh) * 2020-09-24 2021-01-08 建信金融科技有限责任公司 数据的比对方法、装置、电子设备及计算机可读存储介质
CN112287656A (zh) * 2020-10-12 2021-01-29 四川语言桥信息技术有限公司 文本比对方法、装置、设备和存储介质
CN113111045A (zh) * 2021-05-11 2021-07-13 中国工商银行股份有限公司 异构数据比对方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489360B2 (en) * 2012-10-17 2019-11-26 Ab Initio Technology Llc Specifying and applying rules to data
US20160378817A1 (en) * 2015-06-25 2016-12-29 Trifectix, Inc. Systems and methods of identifying data variations
US11080462B2 (en) * 2017-11-13 2021-08-03 Workshare Ltd. Method of comparing two data tables and displaying the results without source formatting

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017097507A (ja) * 2015-11-19 2017-06-01 富士通株式会社 比較プログラム、情報処理装置および比較方法
CN107015948A (zh) * 2017-03-16 2017-08-04 武汉斗鱼网络科技有限公司 一种日志信息格式化方法及系统
CN110874526A (zh) * 2018-12-29 2020-03-10 北京安天网络安全技术有限公司 一种文件相似性检测方法、装置、电子设备及存储介质
CN112199935A (zh) * 2020-09-24 2021-01-08 建信金融科技有限责任公司 数据的比对方法、装置、电子设备及计算机可读存储介质
CN112287656A (zh) * 2020-10-12 2021-01-29 四川语言桥信息技术有限公司 文本比对方法、装置、设备和存储介质
CN113111045A (zh) * 2021-05-11 2021-07-13 中国工商银行股份有限公司 异构数据比对方法及装置

Also Published As

Publication number Publication date
CN113642311A (zh) 2021-11-12

Similar Documents

Publication Publication Date Title
CN113642311B (zh) 一种数据对比方法、装置、电子设备及存储介质
US10482175B2 (en) Identifying properties of a communication device
EP2871816B1 (en) Identifying properties of a communication device
US10089411B2 (en) Method and apparatus and computer readable medium for computing string similarity metric
CN109271611B (zh) 一种数据校验方法、装置及电子设备
CN110795464B (zh) 对象标记数据的字段校验方法、装置、终端及存储介质
CN111984444A (zh) 一种异常信息的处理方法和装置
CN114548059A (zh) 一种结构化数据的管理方法、装置、存储介质及电子设备
CN114282288B (zh) 轴网识别方法、装置、设备及存储介质
US8862586B2 (en) Document analysis system
CN108021713B (zh) 一种文档聚类的方法和装置
CN113609020A (zh) 一种测试用例推荐方法及装置
CN110427538B (zh) 一种数据查询方法、存储方法、装置及电子设备
CN112256691B (zh) 一种数据映射方法、装置及电子设备
CN110727895A (zh) 一种敏感词发送方法、装置、电子设备及存储介质
CN112115159B (zh) 一种sql语句的生成方法、装置、电子设备和存储介质
CN115118583A (zh) 日志查询方法、装置、电子设备及计算机可读存储设备
CN114611039A (zh) 异步加载规则的解析方法、装置、存储介质和电子设备
CN111143203B (zh) 机器学习、隐私代码确定方法、装置及电子设备
CN109670114B (zh) 制图规则推荐方法及装置
CN109388714B (zh) 文本标注方法、装置、设备和计算机可读存储介质
CN110059272B (zh) 一种页面特征识别方法和装置
CN111914868A (zh) 模型训练方法、异常数据检测方法、装置和电子设备
CN117435640A (zh) 一种用于定位相似实例的方法、装置和电子设备
CN111309851B (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