用csv.DictWriter写一个部分行?

时间:2014-01-07 16:44:05

标签: python csv dictionary python-2.x

我有一个带有一组输入的CSV文件。

示例:

A B C D

我想分析结果并输出每行的CSV文件,例如:

B C

DictReader构建完整字典,其中包含“A”“B”“C”“D”键。 DictWriter按照预期设置字段。

但是,当我尝试将数据发送到DictWriter时,我收到错误消息:

ValueError: dict contains fields not in fieldnames: A D

我必须手动从字典中删除值条目,还是有一种简单的自动方式来设置它?

我使用的是Python 2.6.6,无法更新到更高版本。

1 个答案:

答案 0 :(得分:2)

是的,有一种简单的方法可以做到这一点。当您创建正在使用的csv.DictWriter实例时,只需将关键字参数extrasaction='ignore'传递给它 - 它的默认值为'raise',这是导致ValueError例外的原因当你传递一个没有在fieldnames参数中指定的密钥的字典时,就会得到它。

顺便说一下,在提出问题之前阅读relevant documentation通常是值得的努力 - 并且通常可以毫不拖延地提供答案。