我编写了一个函数,它使用csv
模块将字典列表序列化为CSV文件,代码如下:
data = csv.DictWriter(out_f, fieldnames)
data.writerows(dictrows)
但是,有时我只想将每个字典的键的一个子集写入一个文件。如果我将每个字典的键的子集作为fieldnames
传递,就会得到错误:
"dict contains fields not in fieldnames"
我怎样才能使DictRows只写我指定给CSV的字段的一个子集,而忽略那些在字典中但不在字段名中的字段?
Tags:
代码更改:
忘记听写器,用普通的书写器。
然后在你的口述清单上循环:
如果不希望在
d
中没有用于fieldname
的条目时出现异常,请使用d.get(fieldname, "")
,而不是d[fieldname]
。给匿名落选者的注意:这是在幕后做亚历克斯的解决方案(见Lib/csv.py),做得更好一点。。。py调用一个函数来获取列表中的每一行,该函数的核心是
最简单和最直接的方法是在初始化
DictWriter
实例时传递extrasaction='ignore'
,如文档所述here:它也可以在
writerows
上工作,在内部,它只是重复调用writerow
。相关问题 更多 >
编程相关推荐