我正在为我们的企业导入例程寻找自定义文件解析的最佳解决方案。我想基本上将一种文件格式更改为标准文件格式,并有一个将该数据导入数据库的例程。我需要能够为每个客户创建自定义脚本,因为很难让客户遵守标准或模板格式。我已经看过PowerShell和Iron Python做到这一点,但我不确定这是我想要去的路线。我也看过一些工具,比如Talend,这是一个拖放式工具,它可能会或可能不会给我我想要的灵活性。我们是一个.NET商店,并且已经创建了自定义代码来完成此操作,但是我需要更快创建的代码,然后在每次获取新文件格式时编写自定义分析函数。转换文件的最佳文件解析解决方案是什么?
回答
Python对此很棒之类的事情。这就是我们使用的原因。每次新的客户转移都是一次新的冒险,而Python为我们提供了快速响应的灵活性。
编辑。所有读取文件的python脚本都是“自定义文件解析器”。没有一个实际的例子,提供一个详细的例子是不明智的。
with open("some file", "r") as source:
for line in source:
process(line)
这是对所有有一个“自定义文件分析器”。如果你正在解析.csv或.xml文件,那么Python有模块。如果你正在解析固定格式的文件,你会使用字符串切片操作。如果你解析其他文件(X12?JSON?YAML?),你需要适当的解析器。
Tab-Delim。
from collections import namedtuple
RecordLayout = namedtuple('RecordLayout',['field1','field2','field3',...])
def process(aLine):
record = RecordLayout(aLine.split('\t'))
...
固定的版面。
from collections import namedtuple
RecordLayout = namedtuple('RecordLayout',['field1','field2','field3',...])
def process(aLine):
fields = (aLine[:10], aLine[10:20], aLine[20:30], ...)
record = RecordLayout(fields)
...
根据不同的复杂性和工作的变化,你应该考虑像SSIS的ETL工具(SQL Server集成服务)。
我们收到的一些文件很难分析。除了标准的文件导入之外,还有什么特殊的工具可以与SSIS一起提供吗? – Ryan 2009-12-10 00:29:27
请详细说明格式。一般来说,SSIS将允许您解析任何格式 - 固定字段,分隔符,XML等。如有必要,编写符合SSIS的自己的解析器非常容易,因此只需解析函数就可以定制。 – 2009-12-10 02:02:36
我没有意识到你可以在SSIS中使用自定义的解析函数。我将不得不更多地考虑这一点。谢谢!我正在考虑购买像Advanced ETL Processor Ent这样的工具。 – Ryan 2009-12-10 17:19:14
- 1. 最佳解决方案解决文件无法访问错误
- 2. 发送短信的最佳硬件解决方案是什么?
- 3. 解决文件路径的最佳方法是什么?
- 4. 什么是更新版本的css文件的最佳解决方案
- 5. 什么是读取/解析XML文件的最佳方法
- 6. 在Perl中解析Excel文件的最佳方式是什么?
- 7. 什么是Visual Studio中解决方案文件的最佳位置?
- 8. 最佳的解决方案
- 9. 解决二叉平方优化问题的最佳解决方案是什么?
- 10. 用CSS转换XHTML标记的最佳ASP.NET PDF解决方案是什么?
- 11. 构建nservicebus解决方案的最佳方式是什么?
- 12. ,这是什么工厂方法的最佳解决方案
- 13. msbuild解决方案文件
- 14. 最佳解决方案
- 15. 最佳解决方案
- 16. 最佳SQL解决方案?
- 17. 在webapp中同时访问文件的最佳解决方案
- 18. 存储大文件的最佳数据库解决方案
- 19. 用信号量解决这种情况的最佳解决方案是什么?
- 20. 什么是解析.c文件的最佳途径?
- 21. 什么是在Visual Studio中的解决方案文件夹
- 22. 什么是SSIS解决方案中使用的.database文件
- 23. 什么是DTE VS2010解决方案中的“杂项文件”?
- 24. 实时事件分析解决方案的最佳数据库
- 25. 此视频布局的最佳解决方案是什么?
- 26. 什么是javacard数据存储的最佳解决方案?
- 27. 什么是创建帮助页面的最佳解决方案?
- 28. 什么是ASP.NET应用程序的最佳MemCache解决方案?
- 29. 什么是此更新的最佳解决方案
- 30. 什么是Flash图表和图形的最佳解决方案?
你能告诉我一个你用来解析的示例脚本吗?我还没有找到任何显示自定义文件解析的好样本。 – Ryan 2009-12-10 17:42:53
@Ryan:读取文件的所有python程序都是“自定义文件分析器”。您有内置的XML,CSV,JSON,YAML和其他一些解析器。您可以下载XLS电子表格的解析器。由于您的问题只是说“自定义”,因此尝试提供任何代码是不明智的。你必须提供一个示例文件。 – 2009-12-10 18:18:33
我们收到的文件有时会采用奇怪的格式,可能需要我们做一些自定义分析来获取我们想要的数据。它们大多数是制表符分隔的,但有时甚至不会使用制表符分隔的设置加载SSIS。下面是我们如何使用C#导入我们加载的文件之一的解析。 string lname = line.Substring(10,20).Trim(); string fname = line.Substring(30,10).Trim(); string mi = line.Substring(40,1).Trim(); – Ryan 2009-12-10 20:13:33