当前位置: 首页 > 知识库问答 >
问题:

Univocity解析器固定宽度解析,每行有多条记录

贝研
2023-03-14

我试图使用统一解析器来解析一个固定宽度格式的文件,该文件每行包含可变数量的固定宽度记录。

格式为记录id[6],子记录[3]的#,子记录[6]

Rec1..3..A1B1C1A2B2C2A3B3C3
Rec2..2..A1B1C1A2B2C2

期望的结果是有一个子记录数组。@链接注释似乎适用,但留档声明这仅适用于超文本标记语言解析器。

我目前的解决方案是将子记录解析为字符串,然后循环遍历每个记录,并在子记录字符串中插入换行符,然后重新解析。有没有一种方法可以使用univocity解析器来实现这一点?

提前谢谢。

共有1个答案

商品
2023-03-14

这里是图书馆的作者。这不受支持,您必须手动拆分这些子记录。

 类似资料:
  • 问题内容: 我试图找到一种解析文件的方法,该文件包含固定宽度的线。例如,前20个字符代表一列,从21:30开始代表另一列,依此类推。 假设该行包含100个字符,将行解析为多个组件的有效方法是什么? 我可以每行使用字符串切片,但是如果行很大,这会有点难看。还有其他快速方法吗? 问题答案: 由于Python标准库的模块是用C编写的,因此使用它非常容易而且非常快捷。 这是可以用来完成您想要的事情的方法。

  • 是否可以根据索引范围将一行解析为多个bean 例: 行:“字段1”、“字段2”、“字段3”。。。。,“字段9”

  • 问题内容: 我从供应商那里得到了一个文件,每行有115个固定宽度的字段。如何将文件解析为115个字段,以便可以在代码中使用它们? 我首先想到的是只是为了让常数为每场像和使用。这看起来很丑,所以我很好奇这样做的更好方法。谷歌搜索打开的两个图书馆似乎都没有更好的选择。 问题答案: 我将使用像flatworm这样的平面文件解析器,而不是重新发明轮子:它具有简洁的API,易于使用,具有不错的错误处理能力和

  • 我想知道在使用CsvRoutines包时,是否有方法检查和验证字段。基本上,如果第一列只有数字,我想处理一行,否则跳过/可能抛出异常。我猜2.7.0中发布的@Validate annotation可以实现这一点。但我想知道,是否有其他方法可以在早期版本(如2.5.9)中实现同样的效果?

  • 我试图使用univocity解析器将csv文件解析为bean的新实例和现有实例。csv是通过使用univocity BeanWriterProcessor生成的,对于我将称为set a的一组bean。 现在我想读回csv,执行以下操作: 案例1:如果行对应于最初出现在集合a中的一个bean,我不想创建一个新的bean实例,而是将csv读入“现有”实例。(即,“更新”实例)。我通过使用bean的UU

  • 我如何在ItemReader中使用Univocity一次读取一行,仍然使用BeanProcessor将我的行自动解析为Java对象?