Index: Lib/csv.py =================================================================== --- Lib/csv.py (revision 53441) +++ Lib/csv.py (working copy) @@ -115,9 +115,12 @@ def _dict_to_list(self, rowdict): if self.extrasaction == "raise": + errored_fields = [] for k in rowdict.keys(): if k not in self.fieldnames: - raise ValueError, "dict contains fields not in fieldnames" + errored_fields.append(k) + if errored_fields: + raise ValueError, "dict contains fields not in fieldnames: %s" % (", ".join(errored_fields)) return [rowdict.get(key, self.restval) for key in self.fieldnames] def writerow(self, rowdict):