2011-06-14 30 views
3

我面臨來自客戶端的可以包含數十萬行的CSV文件。是否有DSL(或Java或Python中廣受歡迎的庫)可以高效地運行這些信息的計算,應用各種規則發出警告和錯誤(當然,用戶可配置)?是否有用於數據完整性驗證的標準DSL?

+0

Python有一個標準的csv模塊內置。 http://docs.python.org/library/csv.html – 2011-06-28 13:33:04

+0

我知道'csv'模塊並廣泛使用它,但它沒有提供基於輸入的數據規則的語法。我可以用純Python編寫它,但是與(例如)Excel公式相比,這有點痛苦。我希望能夠設置幾十條規則,然後遍歷每行。規則越可讀,越好。 – syrion 2011-06-28 13:54:45

回答

1

你能想象一個DSL可以做到嗎?規則將如何?

幾個月前,我曾經研究過這樣的問題 - 最終證明比起來似乎更難。

  1. 第一步是顯而易見的 - 所有 行被解析並放置到 特殊數據鋼結構製品,所以我能 與他們合作;與 缺少字段的人被拋出。

  2. 每一行有其當前的「戰略」 財產,以及可能 策略列表(默認操作,忽略, 力,覆蓋等)

  3. 起初,所有行有自己的「戰略」 屬性設置爲「默認」。

  4. 行處理器檢查操作是否爲 可能,創建錯誤列表 和警告。

  5. 處理 和分析結果的每一行是 導致問題被賦予了 替代策略,用戶可以選擇 列表之後;

所以,如果有任何問題,用戶可以更改該行策略(或者只是簡單地使用「忽略」),並返回到步驟4

所以,我在哪一步會好奇這樣的DSL工作?

+0

我沿着斷言線描繪了一些東西,這些東西不一定會在應用程序中啓用修復它們的動作。這是一個完整性檢查腳本,因此必須在報告端執行操作,而不是應用程序本身。例如:''付費項目數量<=「報告項目數量」或者失敗,並且「報告項目少於付費項目」。'要調用一個函數,可能:'「家庭電話號碼」格式化爲「電話「或警告」家庭電話號碼格式不正確「 – syrion 2011-06-28 21:02:55

相關問題