0

following error: "UnicodeEncodeError: 'ascii' codec can't encode character u'\xc4' in position 2: ordinal not in range(128)"

mydict = { 
          'SNo': ['1','2','3'],
          'Name': ['Dinesh', 'Rajesh', 'Mahesh'],
          'Grade': ['α', 'β', 'γ']
          }

with open('info.csv', 'wb') as f:
    header = mydict.keys()
    writer = csv.DictWriter(f, fieldnames=header)
    writer.writeheader()
    for pivoted in zip(*mydict.values()):
        writer.writerow(dict(zip(header, pivoted)))

Python Version 2.7

Expected Output

enter image description here

Error: UnicodeEncodeError: 'charmap' codec can't encode character '\u03b1' in position 9: character maps to <undefined>

  • Request for unique solution which will work all UnicodeEncodeError, following error: "UnicodeEncodeError: 'ascii' codec can't encode character u'\xc4' in position 2: ordinal not in range(128)" – Sadu Dinesh May 25 '20 at 17:32
  • 1
    Did you read the csv documentation and look at `UnicodeWriter` Which gives an example of writing unicode to csv in UTF-8 encoding? This is much easier using Python 3.x – DisappointedByUnaccountableMod May 25 '20 at 17:36
  • See [Python DictWriter writing UTF-8 encoded CSV files](https://stackoverflow.com/q/5838605/235698). – Mark Tolonen May 25 '20 at 17:43

0 Answers0