System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本申請涉及數(shù)據(jù)處理,尤其是涉及到一種數(shù)據(jù)差異化檢測方法、裝置、介質(zhì)及設(shè)備。
技術(shù)介紹
1、在軟件開發(fā)過程中,通常通過治理文件(例如excel文件)進行接口的開發(fā),開發(fā)完成之后,在用戶測試環(huán)境進行測試;測試完成需要導出對應開發(fā)的接口信息(例如json文件)并部署到生產(chǎn)環(huán)境。在這一過程中,經(jīng)常需要將業(yè)務(wù)邏輯的治理文件轉(zhuǎn)換為接口信息,以便于系統(tǒng)線上使用,例如在軟件開發(fā)上線階段,通過將治理文件進行接口信息轉(zhuǎn)換,供上線材料審查時使用。這一過程可能在上線過程中出現(xiàn)接口數(shù)據(jù)與治理文件不一致問題,具體可能包括:數(shù)據(jù)缺失:從用戶測試環(huán)境導出接口信息(如json)時,出現(xiàn)遺漏接口的情況;數(shù)據(jù)差異:相同字段在兩種文件中的值不同;格式錯誤:數(shù)據(jù)格式不符合預期的要求;結(jié)構(gòu)差異:數(shù)據(jù)結(jié)構(gòu)在兩種文件中不一致。
2、針對上述情況,在以往軟件上線過程中,一般都是通過人工進行數(shù)據(jù)差異化檢查。例如,人工檢查接口信息(json)與治理文件(excel)之間的差異。但是這種方式可能會引入很多問題,例如,(1)性能不佳:手動檢查接口信息(json)與治理文件(excel)之間的差異非常耗時;(2)出錯率高:容易出現(xiàn)人為的失誤造成檢查錯誤,造成線上問題,例如元數(shù)據(jù)、接口數(shù)據(jù)的缺失等。
技術(shù)實現(xiàn)思路
1、有鑒于此,本申請?zhí)峁┝艘环N數(shù)據(jù)差異化檢測方法、裝置、介質(zhì)及電子設(shè)備,主要目的在于克服現(xiàn)有人工檢查數(shù)據(jù)差異化的弊端,提高數(shù)據(jù)差異化檢測的效率以及準確性。
2、依據(jù)本申請的一個方面,提供了一種數(shù)據(jù)差異化檢測方
3、分別讀取第一文件和第二文件;
4、分別針對第一文件和第二文件進行解析和結(jié)構(gòu)轉(zhuǎn)換:選擇java語言針對所述第一數(shù)據(jù)格式的第一處理庫,并基于所述第一處理庫提供的樹模型,對所述第一文件的字符串進行java對象轉(zhuǎn)換,以構(gòu)建基于樹模型的第一文件層級樹;以及,選擇java語言第二處理庫讀取所述第二文件,獲取第二文件的工作表對象,并創(chuàng)建map結(jié)構(gòu)存儲所述工作表對象,構(gòu)建第二文件字典;
5、針對第一文件層級樹和第二文件字典進行字段匹配以及內(nèi)容差異化檢測:分別從所述第一文件層級樹和所述第二文件字典中抽取字段名稱,利用自然語言處理技術(shù)識別語義相近的字段,并根據(jù)相似度算法進行字段匹配,對于字段匹配成功的字段進一步進行內(nèi)容差異化檢測;
6、根據(jù)比較結(jié)果進行差異化標記:標記出字段匹配失敗的字段以及內(nèi)容差異化檢測出的內(nèi)容差異的字段內(nèi)容。
7、在一種實現(xiàn)方式中,所述選擇java語言針對所述第一數(shù)據(jù)格式的第一處理庫,并基于所述第一處理庫提供的樹模型,對所述第一文件的字符串進行java對象轉(zhuǎn)換,以構(gòu)建基于樹模型的第一文件層級樹,包括:
8、選擇java語言提供的jackson、gson、jsonsimple中任一處理庫作為所述第一處理庫;
9、調(diào)用所述第一處理庫提供的parser或objectmapper模型類作為樹模型;
10、調(diào)用樹模型提供的java對象轉(zhuǎn)換方法,將所述第一文件的字符串解析為java對象,得到基于所述樹模型的第一文件層級樹。
11、在一種實現(xiàn)方式中,還包括:
12、判斷所述第一文件中是否包含嵌套對象和/或數(shù)組;
13、如果所述第一文件中包含嵌套對象,則將所述嵌套對象轉(zhuǎn)換為java對象實例;
14、如果第一文件中包含數(shù)組,則將所述數(shù)組轉(zhuǎn)換為java集合。
15、在一種實現(xiàn)方式中,所述調(diào)用java語言第二處理庫讀取所述第二文件,獲取第二文件的工作表對象,包括:調(diào)用java語言的apache?poi庫加載第二文件,獲取第二文件的工作表對象,并遍歷工作表中的每一行和每一列;
16、所述創(chuàng)建map結(jié)構(gòu)存儲所述工作表對象,構(gòu)建第二文件字典,包括:針對工作表中的每一行創(chuàng)建一個map,其中鍵是列標題,值是該行對應列的單元格值,并且,將每一行轉(zhuǎn)換后的map存儲到一個集合中,得到由多個map集合構(gòu)成的第二文件字典。
17、在一種實現(xiàn)方式中,所述根據(jù)相似度算法進行字段匹配,包括:
18、獲取第一文件層級樹的第一字段和第二文件字典的第二字段;
19、對第一字段和第二字段分別進行分詞和文本向量化處理,分別得到第一字段分詞向量和第二字段分詞向量;
20、利用相似度算法計算第一字段分詞向量和第二字段分詞向量之間的相似度;
21、將計算得到的相似度的值與預先設(shè)置的相似度閾值進行比較,確定字段匹配結(jié)果。
22、在一種實現(xiàn)方式中,所述對于字段匹配成功的字段進一步進行內(nèi)容差異化檢測,包括:
23、對于字段匹配一致的第一字段和第二字段,進一步比較第一字段的第一數(shù)據(jù)值與第二字段的第二數(shù)據(jù)值;
24、根據(jù)模糊匹配、完全匹配或優(yōu)先級匹配規(guī)則,確定內(nèi)容差異化檢測結(jié)果。
25、在一種實現(xiàn)方式中,所述分別讀取第一文件和第二文件,包括:
26、通過文件選擇器上傳第一文件和第二文件,并根據(jù)文件后綴匹配算法對第一文件和第二文件進行文件格式識別,并過濾掉非第一數(shù)據(jù)格式和非第二數(shù)據(jù)格式的其他格式文件。
27、依據(jù)本申請的一個方面,提供了一種數(shù)據(jù)差異化檢測裝置,用于檢測第一數(shù)據(jù)格式的第一文件與第二數(shù)據(jù)格式的第二文件之間的數(shù)據(jù)差異,包括:
28、文件讀取單元,用于分別讀取第一文件和第二文件;
29、解析轉(zhuǎn)換單元,用于分別針對第一文件和第二文件進行解析和結(jié)構(gòu)轉(zhuǎn)換:選擇java語言針對所述第一數(shù)據(jù)格式的第一處理庫,并基于所述第一處理庫提供的樹模型,對所述第一文件的字符串進行java對象轉(zhuǎn)換,以構(gòu)建基于樹模型的第一文件層級樹;以及,調(diào)用java語言第二處理庫讀取所述第二文件,獲取第二文件的工作表對象,并創(chuàng)建map結(jié)構(gòu)存儲所述工作表對象,構(gòu)建第二文件字典;
30、檢測執(zhí)行單元,用于針對第一文件層級樹和第二文件字典進行字段匹配以及內(nèi)容差異化檢測:分別從所述第一文件層級樹和所述第二文件字典中抽取字段名稱,利用自然語言處理技術(shù)識別語義相近的字段,并根據(jù)相似度算法進行字段匹配,對于字段匹配成功的字段進一步進行內(nèi)容差異化檢測;
31、結(jié)果處理單元,根據(jù)比較結(jié)果進行差異化標記:標記出字段匹配失敗的字段以及內(nèi)容差異化檢測出的內(nèi)容差異的字段內(nèi)容。
32、依據(jù)本申請的一個方面,提供了一種存儲介質(zhì),所述存儲介質(zhì)中存儲有計算機程序,其中,所述計算機程序被設(shè)置為運行時執(zhí)行上述數(shù)據(jù)差異化檢測方法。
33、依據(jù)本申請的一個方面,提供了一種電子設(shè)備,包括存儲器和處理器,所述存儲器中存儲有計算機程序,所述處理器被設(shè)置為運行所述計算機程序以執(zhí)行上述數(shù)據(jù)差異化檢測方法。
34、借由上述技術(shù)方案,本申請?zhí)峁┑囊环N數(shù)據(jù)差異化檢測方法、裝置、介質(zhì)及設(shè)備,與以往使用手動比對的方式不同,是通過文本文檔來自技高網(wǎng)...
【技術(shù)保護點】
1.一種數(shù)據(jù)差異化檢測方法,其特征在于,用于檢測第一數(shù)據(jù)格式的第一文件與第二數(shù)據(jù)格式的第二文件之間的數(shù)據(jù)差異,包括如下步驟:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述選擇java語言針對所述第一數(shù)據(jù)格式的第一處理庫,并基于所述第一處理庫提供的樹模型,對所述第一文件的字符串進行java對象轉(zhuǎn)換,以構(gòu)建基于樹模型的第一文件層級樹,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)相似度算法進行字段匹配,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對于字段匹配成功的字段進一步進行內(nèi)容差異化檢測,包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述分別讀取第一文件和第二文件,包括:
8.一種數(shù)據(jù)差異化檢測裝置,其特征在于,用于檢測第一數(shù)據(jù)格式的第一文件與第二數(shù)據(jù)格式的第二文件之間的數(shù)據(jù)差異,包括:
9.一種存儲介質(zhì),其特征在于,所述存儲介質(zhì)中存儲有計算機程序,其中,所述計算
10.一種電子設(shè)備,包括存儲器和處理器,其特征在于,所述存儲器中存儲有計算機程序,所述處理器被設(shè)置為運行所述計算機程序以執(zhí)行權(quán)利要求1至8任一項中所述的方法。
...【技術(shù)特征摘要】
1.一種數(shù)據(jù)差異化檢測方法,其特征在于,用于檢測第一數(shù)據(jù)格式的第一文件與第二數(shù)據(jù)格式的第二文件之間的數(shù)據(jù)差異,包括如下步驟:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述選擇java語言針對所述第一數(shù)據(jù)格式的第一處理庫,并基于所述第一處理庫提供的樹模型,對所述第一文件的字符串進行java對象轉(zhuǎn)換,以構(gòu)建基于樹模型的第一文件層級樹,包括:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)相似度算法進行字段匹配,包括:
6.根據(jù)權(quán)利要求1所述的方法,其...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:于好杰,
申請(專利權(quán))人:龍盈智達北京科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。