Issue #20351: Add examples for csv.DictReader and csv.DictWriter.

Patch by Charles-Axel Dein.
diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst
index 2054ce6..1f5ae65 100644
--- a/Doc/library/csv.rst
+++ b/Doc/library/csv.rst
@@ -180,6 +180,18 @@
    of the optional *restval* parameter.  Any other optional or keyword
    arguments are passed to the underlying :class:`reader` instance.
 
+   A short usage example::
+
+       >>> import csv
+       >>> with open('names.csv') as csvfile:
+       ...     reader = csv.DictReader(csvfile)
+       ...     for row in reader:
+       ...         print(row['first_name'], row['last_name'])
+       ...
+       Baked Beans
+       Lovely Spam
+       Wonderful Spam
+
 
 .. class:: DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', \
                       dialect='excel', *args, **kwds)
@@ -202,6 +214,19 @@
    objects are not ordered, there is not enough information available to deduce
    the order in which the row should be written to the *csvfile*.
 
+   A short usage example::
+
+       import csv
+
+       with open('names.csv', 'w') as csvfile:
+           fieldnames = ['first_name', 'last_name']
+           writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
+
+           writer.writeheader()
+           writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
+           writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
+           writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})
+
 
 .. class:: Dialect