2017-08-04 73 views
0

數據量不清楚我嘗試解析JavaScript中一個CSV文件中的HTML文件,該文件是這樣的:剖析CSV在JavaScript中,每

Task,started at,Done by,Start stem,top measurement,bottom measurement,time,west measurement,east measurement,time,Measured height difference,time,Actual adjustment,time,Horizontal measured offset,time,Actual adjustment,time,finished at,finished by 
task;01,startedAt;8/4/2017 @ 10:58:19,doneBy;ernie,startStem;8/4/2017 @ 10:58:24,topMeasurement;0.2,bottomMeasurement;0.1,timeTB;8/4/2017 @ 10:58:39,westMeasurement;0.2,eastMeasurement;0.1,timeWE;8/4/2017 @ 10:58:44,topMeasurement;0.2,bottomMeasurement;0.1,timeTB;8/4/2017 @ 10:58:46,measuredHeightDifference;0.22,timeHE;8/4/2017 @ 10:58:59,actualAdjustmentHE;43,timeAHE;8/4/2017 @ 10:59:1,measuredHeightDifference;0.7,timeHE;8/4/2017 @ 10:59:6,actualAdjustmentHE;34,timeAHE;8/4/2017 @ 10:59:8,measuredHeightDifference;0.7,timeHE;8/4/2017 @ 10:59:13,horizontalMeasuredOffset;0.8,timeHO;8/4/2017 @ 10:59:20,actualAdjustmentHO;56,timeAHO;8/4/2017 @ 10:59:22,horizontalMeasuredOffset;0.2,timeHO;8/4/2017 @ 10:59:28,actualAdjustmentHO;23,timeAHO;8/4/2017 @ 10:59:30,horizontalMeasuredOffset;0.1,timeHO;8/4/2017 @ 10:59:34,actualAdjustmentHO;3,timeAHO;8/4/2017 @ 10:59:37,horizontalMeasuredOffset;0.1,timeHO;8/4/2017 @ 10:59:40,finishedAt;8/4/2017 @ 10:59:56,finishedBy;ernie 
task;01,startedAt;8/4/2017 @ 11:0:31,doneBy;bert,startStem;8/4/2017 @ 11:0:35,topMeasurement;3,bottomMeasurement;4,timeTB;8/4/2017 @ 11:0:50,westMeasurement;3,eastMeasurement;4,timeWE;8/4/2017 @ 11:0:53,topMeasurement;5,bottomMeasurement;3,timeTB;8/4/2017 @ 11:0:56,westMeasurement;5,eastMeasurement;3,timeWE;8/4/2017 @ 11:1:0,topMeasurement;5,bottomMeasurement;3,timeTB;8/4/2017 @ 11:1:3,measuredHeightDifference;2,timeHE;8/4/2017 @ 11:1:15,actualAdjustmentHE;3,timeAHE;8/4/2017 @ 11:1:16,measuredHeightDifference;4,timeHE;8/4/2017 @ 11:1:20,actualAdjustmentHE;2,timeAHE;8/4/2017 @ 11:1:22,measuredHeightDifference;1,timeHE;8/4/2017 @ 11:1:25,actualAdjustmentHE;4,timeAHE;8/4/2017 @ 11:1:26,measuredHeightDifference;1,timeHE;8/4/2017 @ 11:1:29,horizontalMeasuredOffset;4,timeHO;8/4/2017 @ 11:1:35,actualAdjustmentHO;3,timeAHO;8/4/2017 @ 11:1:36,horizontalMeasuredOffset;4,timeHO;8/4/2017 @ 11:1:40,finishedAt;8/4/2017 @ 11:1:57,finishedBy;bert 
task;01,startedAt;8/4/2017 @ 11:2:22,doneBy;bernie,startStem;8/4/2017 @ 11:2:27,topMeasurement;0.3,bottomMeasurement;0.7,timeTB;8/4/2017 @ 11:2:43,westMeasurement;0.3,eastMeasurement;0.7,timeWE;8/4/2017 @ 11:2:49,topMeasurement;0.3,bottomMeasurement;0.7,timeTB;8/4/2017 @ 11:2:51,measuredHeightDifference;4,timeHE;8/4/2017 @ 11:2:59,actualAdjustmentHE;34,timeAHE;8/4/2017 @ 11:3:1,measuredHeightDifference;5,timeHE;8/4/2017 @ 11:3:3,actualAdjustmentHE;345,timeAHE;8/4/2017 @ 11:3:5,measuredHeightDifference;5,timeHE;8/4/2017 @ 11:3:9,horizontalMeasuredOffset;4,timeHO;8/4/2017 @ 11:3:13,actualAdjustmentHO;234,timeAHO;8/4/2017 @ 11:3:15,horizontalMeasuredOffset;4,timeHO;8/4/2017 @ 11:3:18,finishedAt;8/4/2017 @ 11:3:35,finishedBy;bernie 

我嘗試了一些東西,庫,例如http://papaparse.com/但對於一個記錄具有多個條目的多個數據(並且總是不一定相同)的問題,我有點困惑。

+1

如果您可以提供[最小的,可驗證的示例](https://stackoverflow.com/help/mcve),它會更容易提供幫助。這意味着你應該至少發佈一個你已經嘗試過的代碼示例,一個不起作用的數據類型的例子(你可能提供了這種類型的數據,但是很難從查看那個未格式化的csv轉儲)和預期的結果。 –

+0

我認爲發佈我嘗試過的東西是沒有意義的,因爲他們沒有真正的工作。我發佈的csv是我想要解析的,但主要問題是我可以在每種測量類型中進行多次測量。是否可以在此處發佈表格以顯示解析後的外觀?我沒有找到這個 – alex7786

+0

我推薦優秀的jquery-csv庫:https://github.com/evanplaice/jquery-csv –

回答

2

CSV的RFC規範不允許可變記錄長度。

RFC 4180 CSV format section 2.4

要麼你要修復輸出CSV代碼(如果你有控制權,這是理想的解決方案),因此它尊重的規格,也可以採用分體式做一個快速和骯髒的解析器()秒。

請注意,如果您使用DIY路線,並且您已經在解析非標準的CSV,那麼您可能會遇到各種各樣的陷阱。例如,必須處理可能需要包含逗號/分號的值的雙引號,或者首先從輸出的任何輸出中處理其他超出規範的行爲。

+1

同意。它看起來像OP的CSV數據無效。每行有(似乎是)列名稱。他將很難找到解析這個自定義CSV的標準庫。 – Travis

+0

我想我應該一路走下去,調整我得到的數據。我一直在尋找可能做到的事情,但我認爲,用這個輸出來嘗試它是不合理的 – alex7786