#19449: Handle non-string keys when generating 'fieldnames' error.

csv was handling non-string keys fine except for the error message
generated when a non-string key was not in 'fieldnames'.

Fix by Tomas Grahn, full patch-with-test by Vajrasky Kok (tweaked slightly).
diff --git a/Lib/csv.py b/Lib/csv.py
index da3bc44..a56eed8 100644
--- a/Lib/csv.py
+++ b/Lib/csv.py
@@ -146,7 +146,7 @@
             wrong_fields = [k for k in rowdict if k not in self.fieldnames]
             if wrong_fields:
                 raise ValueError("dict contains fields not in fieldnames: "
-                                 + ", ".join(wrong_fields))
+                                 + ", ".join([repr(x) for x in wrong_fields]))
         return [rowdict.get(key, self.restval) for key in self.fieldnames]
 
     def writerow(self, rowdict):