Запись CSV-файла с помощью умляутов, вызывающих «кодек UnicodeEncodeError: 'ascii', не может кодировать символ"

Я пытаюсь написать персонажей с двойными точками (умлауты), такими как ä, ö и Ö. Я могу записать его в файл с data.encode("utf-8") но результат b'\xc3\xa4\xc3\xa4\xc3\x96' не является приятным (UTF-8 как буквенные символы). Я хочу получить "ääÖ" как записанный в файл.

Как я могу писать данные с символами умляута в CSV-файл в Python 3?

  • Файл Python - csv пуст после использования csv writer
  • как написать словарь с одним ключом нескольких значений в файл csv
  • Сколько строк в CSV Python?
  • Python: пропустить строки комментариев, отмеченные # в csv.DictReader
  • TypeError: объект 'generator' не подлежит расшифровке, csv-файл
  • Как распечатать count of occourance некоторой строки в том же файле CSV с помощью Python?
  •  import csv data="ääÖ" with open("test.csv", "w") as fp: a = csv.writer(fp, delimiter=";") data=resultFile a.writerows(data) 

    Выслеживать:

     File "<ipython-input-280-73b1f615929e>", line 5, in <module> a.writerows(data) UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 15: ordinal not in range(128) 

  • openpyxl python - запись csv в excel дает число, отформатированное как текст,
  • Python конвертирует csv в xlsx
  • Python CSV читатель пропускает 9 заголовков
  • конвертировать файл csv в список словарей
  • Как читать файл csv с помощью python
  • Создание объектов из файла CSV Python
  • 2 Solutions collect form web for “Запись CSV-файла с помощью умляутов, вызывающих «кодек UnicodeEncodeError: 'ascii', не может кодировать символ"”

    Добавьте encoding параметров в open() и установите ее в 'utf8' .

     import csv data = "ääÖ" with open("test.csv", 'w', encoding='utf8') as fp: a = csv.writer(fp, delimiter=";") a.writerows(data) 

    Редактировать: Удалено использование библиотеки io как open такое же, как и io.open в Python 3.

    Это решение должно работать как на python2, так и на 3 (не требуется в python3):

     #!/usr/bin/env python # -*- coding: utf-8 -*- import csv data="ääÖ" with open("test.csv", "w") as fp: a = csv.writer(fp, delimiter=";") a.writerows(data) 

    Кредиты на: Работа с кодировкой utf-8 в источнике Python

    Python - лучший язык программирования в мире.