使用DictWriter编写字典键的子集

发布于 2021-01-29 15:26:25

我编写了一个函数,使用该csv模块将字典列表序列化为CSV文件,其代码如下:

data = csv.DictWriter(out_f, fieldnames)
data.writerows(dictrows)

但是,有时我只想将每个字典键的一个子集写到文件中。如果我将fieldnames每个字典都作为键的子集传递,则会收到错误消息:

"dict contains fields not in fieldnames"

如何使DictRows仅将我指定的字段的子集写入CSV,而忽略字典中的字段而不是字段名?

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    最简单,最直接的方法是extrasaction='ignore'在初始化DictWriter实例时通过,如此处所述

    如果传递给该writerow()方法的字典 包含字段名中找不到的键,则可选的extrasaction参数指示要执行的操作。如果设置为
    'raise'a,ValueError则引发。如果将其设置为'ignore',则字典中的其他值将被忽略。

    它也可在上使用writerows,在内部仅writerow重复调用。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看