I wrote a function that serializes a list of dictionaries as a CSV file using the csv module, with code like this:
data = csv.DictWriter(out_f, fieldnames)
data.writerows(dictrows)
However, I sometimes want to write out to a file only a subset of each dictionary’s keys. If I pass as fieldnames a subset of the keys that each dictionary has, I get the error:
"dict contains fields not in fieldnames"
How can I make it so that DictRows will write just a subset of the fields I specify to CSV, ignoring those fields that are in the dictionary but not in fieldnames?
Simplest and most direct approach is to pass
extrasaction='ignore'when you initialize yourDictWriterinstance, as documented here:It also works on
writerows, which, internally, just callswriterowrepeatedly.