gpt4 book ai didi

Scala:自动检测 CSV 文件中的定界符/分隔符

转载 作者:行者123 更新时间:2023-12-03 04:11:28 24 4
gpt4 key购买 nike

我正在使用 OpenCSV 库来拆分我的 CSV 文件。现在我需要绝对确定地检测定界符/分隔符字符。我在网上搜索过,但只找到了创建候选列表并尝试其中一个的示例。我认为这不是最好的方法,因为您可能会出错。我的拆分器应该在任何 CSV(我无法控制)上正常工作,因此它必须尽可能通用。大家有好的解决办法吗?

最佳答案

您可能已经看过这个related SO question ,其中列出了一些好的策略,例如计算潜在分隔符出现的次数,和/或在使用假设分隔符时验证每行是否具有相同的列数。

不幸的是,绝对确定性是不可能的,因为该格式不包含在文件中明确指定分隔符的方法。我认为使其尽可能通用的最佳解决方案是让用户指定它何时不是逗号(这就是 opencsv 处理它的方式),或者如果您或他们确定,则允许客户端指定分隔符自动检测失败。如果这不能交互,那么我认为您能做的最好的事情就是记录您认为失败的案例,以便他们稍后处理。

此外,我认为错误率会低于您的预期。我的猜测是,99% 的情况下分隔符都是逗号、分号、句点或制表符。不幸的是,我看到懒惰的编码人员在假设数据不包含字段的情况下使用脱字符号、竖线或波形符之类的东西来分隔字段,因此他们不必进行适当的转义。但这不是常态,也不应该将其视为 CSV。

Python csv 模块有一个 Sniffer猜测分隔符的类(用户提供候选列表);你可能想看看它的 implementation .

关于Scala:自动检测 CSV 文件中的定界符/分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23758093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com