【问题标题】:Write a partial row with csv.DictWriter?用 csv.DictWriter 写部分行?
【发布时间】:2014-01-25 11:03:42
【问题描述】:

我有一个包含一组输入的 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,无法更新到更高版本。

【问题讨论】:

    标签: python csv dictionary python-2.x


    【解决方案1】:

    是的,有一个简单的方法可以做到这一点。当您创建正在使用的csv.DictWriter 实例时,只需将关键字参数extrasaction='ignore' 传递给它——它的默认值是'raise',这是您在传递它时遇到ValueError 异常的原因fieldnames 参数中未指定键的字典。

    顺便说一句,在提出 SO 问题之前阅读relevant documentation 通常是一项值得的努力,而且通常可以立即提供答案。

    【讨论】:

    • 抱歉,我显然错过了可选参数列表中的该部分,或者误解了我所看到的内容。
    猜你喜欢
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2019-02-10
    • 1970-01-01
    • 2015-07-21
    • 2022-01-25
    • 2019-11-24
    相关资源
    最近更新 更多