mirror of
https://github.com/python/cpython.git
synced 2025-11-19 02:39:15 +00:00
Issue #27842: The csv.DictReader now returns rows of type OrderedDict.
This commit is contained in:
parent
15f44ab043
commit
43ca452887
4 changed files with 45 additions and 16 deletions
|
|
@ -149,18 +149,25 @@ The :mod:`csv` module defines the following classes:
|
|||
.. class:: DictReader(csvfile, fieldnames=None, restkey=None, restval=None, \
|
||||
dialect='excel', *args, **kwds)
|
||||
|
||||
Create an object which operates like a regular reader but maps the
|
||||
information read into a dict whose keys are given by the optional
|
||||
*fieldnames* parameter. The *fieldnames* parameter is a :mod:`sequence
|
||||
<collections.abc>` whose elements are associated with the fields of the
|
||||
input data in order. These elements become the keys of the resulting
|
||||
dictionary. If the *fieldnames* parameter is omitted, the values in the
|
||||
first row of the *csvfile* will be used as the fieldnames. If the row read
|
||||
has more fields than the fieldnames sequence, the remaining data is added as
|
||||
a sequence keyed by the value of *restkey*. If the row read has fewer
|
||||
fields than the fieldnames sequence, the remaining keys take the value of
|
||||
the optional *restval* parameter. Any other optional or keyword arguments
|
||||
are passed to the underlying :class:`reader` instance.
|
||||
Create an object that operates like a regular reader but maps the
|
||||
information in each row to an :mod:`OrderedDict <collections.OrderedDict>`
|
||||
whose keys are given by the optional *fieldnames* parameter.
|
||||
|
||||
The *fieldnames* parameter is a :term:`sequence`. If *fieldnames* is
|
||||
omitted, the values in the first row of the *csvfile* will be used as the
|
||||
fieldnames. Regardless of how the fieldnames are determined, the ordered
|
||||
dictionary preserves their original ordering.
|
||||
|
||||
If a row has more fields than fieldnames, the remaining data is put in a
|
||||
list and stored with the fieldname specified by *restkey* (which defaults
|
||||
to ``None``). If a non-blank row has fewer fields than fieldnames, the
|
||||
missing values are filled-in with ``None``.
|
||||
|
||||
All other optional or keyword arguments are passed to the underlying
|
||||
:class:`reader` instance.
|
||||
|
||||
.. versionchanged:: 3.6
|
||||
Returned rows are now of type :class:`OrderedDict`.
|
||||
|
||||
A short usage example::
|
||||
|
||||
|
|
@ -170,9 +177,11 @@ The :mod:`csv` module defines the following classes:
|
|||
... for row in reader:
|
||||
... print(row['first_name'], row['last_name'])
|
||||
...
|
||||
Baked Beans
|
||||
Lovely Spam
|
||||
Wonderful Spam
|
||||
Eric Idle
|
||||
John Cleese
|
||||
|
||||
>>> print(row)
|
||||
OrderedDict([('first_name', 'John'), ('last_name', 'Cleese')])
|
||||
|
||||
|
||||
.. class:: DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue