【发布时间】:2013-01-21 15:47:49
【问题描述】:
这样的文件:
fieldname_A: eggs
fieldname_B: bacon
~EOR~
..
..
~EOR~
fieldname_A: eggs
fieldname_C: spam
fieldname_Z: baked beans
~EOR~
总共有 40 个不同的字段名称,大约 10,000 条记录(EOR 是 End Of Record),其中包含一组可变的字段。大多数字段内容很短,有些很长(超过 1000 个字符)。
我正在寻找一种漂亮、干净、pythonic 的方式来将其转换为 CSV,或者更确切地说,转换为 Google 电子表格。 (数据需要检查和更正。有几个人会这样做。我知道谷歌文档是他们处理相同数据而不会导致版本冲突或同步问题的唯一快速方法。)
Dictwriter 似乎是一种繁琐的方式,因为许多记录(即电子表格中的行)中的字段为空。
输入文件的格式更像 XML,所以我想将其转换为 XML,将其导入 Excel,然后将其作为 Google 电子表格上传。
有什么想法吗?
【问题讨论】:
-
字段名称是预先知道的吗?
-
DictWriter可以被告知对连续丢失的条目使用默认值。 -
最后但并非最不重要的一点是,一个记录结束行有
~EOR,而所有其他行都有~EOR~(注意第二个波浪号)。这是你的错字吗? -
@Martijn 是的,字段名称是预先知道的;输入 ~EOR~ 已更正,谢谢 :-) ;是的,您假设没有数据行中包含 EOR 是正确的。
-
为了您的数据清理,请调查“Google Refine”(现在显然已重命名为“OpenRefine”)。