alexkomp
@alexkomp
Простота — залог надежности.

Как сделать, чтобы при выполнении кода в CSV файле выводилась кириллица, а не иероглифы?

Написал парсинг для РИА новости на Python.
Парсер работает, но когда я открываю файл, вся кириллица отображается иероглифами.
Вот код открытия CSV на запись.
Как сделать, чтобы после записи в CSV отображалась кириллица, а не иероглифы?
def file_w(news):
	with open('parser_news.csv', 'w', encoding='utf-8') as file:
		a_pen = csv.writer(file)
		a_pen.writerow(('Название', 'Ссылка на статью', 'Дата', 'Ссылка на картинку', 'Контент'))
		for new in news:
			a_pen.writerow((new['title'], new['href'], new['date'], new['img'], new['content']))

news = RIA_NEWS(base_url, headers)
file_w(news)
  • Вопрос задан
  • 874 просмотра
Решения вопроса 1
@DollaR84
Надо внутри python преобразовать к utf-8.
Как я понимаю это касается new['title'] и new['content'].
Надо в вашем цикле добавить к ним decode.
То есть:
for new in news:
      a_pen.writerow((new['title'].decode("utf-8"), new['href'], new['date'], new['img'], new['content'].decode('utf-8')))


UPDATE
совместными усилиями пришли к выводу, что я некорректно понял вопрос изначально.
Ошибка не в самом python, а в открытии файла csv в excel.
Для открытия csv нужно в excel его импортировать и в мастере указать кодировку utf-8.
Но это необходимо проделывать при каждом импорте csv.
Поэтому для получения данных для excel с нормальной кодировкой лучше писать данные не в csv, а файл полноценный xlsx при помощи модуля openxl. Он позволяет создать полноценную книгу excel и записать данные прямо туда. Сохранив файл данным модулем, кодировка в excel должна открываться сразу нормально.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы