2011-06-14 84 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

相关问题