在Ruby中创建数据解析器

时间:2012-10-02 10:39:39

标签: ruby sinatra padrino

我需要创建一个数据解析器,它将读取几个CSV(预定义格式),解析,检查有效性,然后,如果一切按计划进行,则将数据提交到数据库。最后,报告有效性检查员未发现的最终致命的任何错误。如果在大多数错误中它仍然可以提交无错误的行并且至少报告未提交的行,那将非常有用。

有没有人知道宝石,任何其他资源,或者我可以用来启动我的任何建议?

这将成为更大的Padrino应用程序的一部分,并且每个CSV将被发布到用于此类处理的路由。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

您可以使用csv库并解析数据。如果出现问题rescue。检查健全性的其他方法取决于您的数据以及您是否可以从无效数据中预测有效。那是我要去的路线。

如果您通过csv库阅读,您可以直接将数据转换为对象,然后使用您的faviourite orm将数据保存到数据库。

答案 1 :(得分:1)

对于解析CSV,您可以使用FasterCSV来处理解析和捕获错误。

要导入数据,请使用现有的ORM(ActiveRecord,Sequel,DataMapper)来处理控制器中的数据库交互逻辑。

您可能还会发现这些有趣的内容:

  1. http://www.ruby-forum.com/topic/178753
  2. http://blog.pioneeringsoftware.co.uk/2010/07/13/import-csv-files-in-rails-3