【发布时间】:2012-09-23 14:36:39
【问题描述】:
我收到了包含我需要加载到 postgres 数据库中的数据的文本文件。
文件结构为记录(每行一个),字段由波浪号 (~) 分隔。不幸的是,有时字段内容会包含一个波浪号。
由于文件不是整齐的 CSV,并且波浪号没有转义,这会导致记录包含的字段过多,从而导致数据库抛出异常并停止加载。
我知道记录应该是什么样子(文本、整数、浮点字段)。
有人对如何修复超长记录有建议吗?我用 per 编码,但我对 python、javascript、纯英语的建议感到满意。
【问题讨论】:
-
你能举个例子吗?
-
Perl 的
Text::CSV模块或Python 的csv模块呢? -
文本字段是否被引用?例如。像这样:
"foo"~123~1.25 -
你可以做一些简单的事情,比如:
perl -F'~' -lane 'print if @F > 10' input.txt > broken_fields.txt其中“10”是允许的最大字段数。然后,您可以在闲暇时检查破碎的田野。
标签: python perl language-agnostic