diff options
author | Sam Ezeh <sam.z.ezeh@gmail.com> | 2022-08-25 11:13:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-25 05:13:24 -0500 |
commit | cd492d43a2980faf0ef4a3f99c665023a506414c (patch) | |
tree | c5758ce600d818dfdad9b1cbacb5b62aa3adc7a1 /Lib/csv.py | |
parent | c09fa7542c6d9b724e423b14c6fb5f4338eabd12 (diff) | |
download | cpython-cd492d43a2980faf0ef4a3f99c665023a506414c.tar.gz cpython-cd492d43a2980faf0ef4a3f99c665023a506414c.zip |
gh-76728: Coerce DictReader and DictWriter fieldnames argument to a list (GH-32225)
Diffstat (limited to 'Lib/csv.py')
-rw-r--r-- | Lib/csv.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Lib/csv.py b/Lib/csv.py index bfc850ee96d..0de5656a4ee 100644 --- a/Lib/csv.py +++ b/Lib/csv.py @@ -81,6 +81,8 @@ register_dialect("unix", unix_dialect) class DictReader: def __init__(self, f, fieldnames=None, restkey=None, restval=None, dialect="excel", *args, **kwds): + if fieldnames is not None and iter(fieldnames) is fieldnames: + fieldnames = list(fieldnames) self._fieldnames = fieldnames # list of keys for the dict self.restkey = restkey # key to catch long rows self.restval = restval # default value for short rows @@ -133,6 +135,8 @@ class DictReader: class DictWriter: def __init__(self, f, fieldnames, restval="", extrasaction="raise", dialect="excel", *args, **kwds): + if fieldnames is not None and iter(fieldnames) is fieldnames: + fieldnames = list(fieldnames) self.fieldnames = fieldnames # list of keys for the dict self.restval = restval # for writing short dicts if extrasaction.lower() not in ("raise", "ignore"): |