Чтение из CSV: разделитель должен быть строкой, а не юникодом

У меня была рабочая процедура (после того, как несколько полезных людей дали мне критический совет в этом потоке), создав экземпляры модели из файла CSV. До сих пор я использовал Python 2.7 и убедился, что никаких специальных символов не появлялось нигде. В настоящее время мне нужно перейти в Unicode. я добавил

# -*- coding: utf-8 -*- 

в верхней части моих файлов и все работает красиво (я могу использовать специальные символы в своем коде и комментариях), за исключением процедуры чтения CSV. А именно, оболочка объектов к этой части:

  • Сортировка словаря и запись его в файл CSV
  • более быстрая загрузка csv с индексом datetime pandas
  • Pandas read_csv от url
  • Python: Как использовать DictReader дважды?
  • Создание матрицы замешательства из нескольких CSV-файлов
  • Самый простой способ чтения csv-файлов с многопроцессорностью в Pandas
  •  dataReader = csv.reader(open(filename), delimiter=';', quotechar='"') 

    который работал до этого, с

     TypeError: "delimiter" must be string, not unicode 

    Прочитав несколько старых вопросов, я переключился на

     dataReader = csv.reader(open(filename), delimiter=str(u';'), quotechar=str(u'"')) 

    для обеспечения того факта, что разделитель будет строкой, но я получаю точно такую ​​же ошибку. Что я делаю не так?

  • Цикл зависимостей приложений Django
  • Статические файлы Django
  • Django Rest Framework: включите разбиение на страницы на ViewSet (например, разбиение на страницы ModelViewSet)
  • Django против других веб-фреймворков Python?
  • Настройка django-paypal
  • Ошибка: SMTPRecipientsRefused 553, '5.7.1 #while, работая в форме контакта в django
  • One Solution collect form web for “Чтение из CSV: разделитель должен быть строкой, а не юникодом”

    Ваша кодировка по умолчанию, вероятно, не самая подходящая.

    Укажите кодировку следующим образом:

     dataReader = csv.reader(open(filename), delimiter=str(u';').encode('utf-8'), quotechar=str(u'"').encode('utf-8')) 
    Python - лучший язык программирования в мире.