Экспорт арабских слов в CSV в Python 3 - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь экспортировать арабский в CSV-файл после получения его от переводчика.Я всегда сталкиваюсь с проблемой при попытке записать ее в CSV.Проблема заключается в следующем:

return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 2-7: character maps to <undefined>

Мой код выглядит следующим образом (немного, пытаясь быть кратким здесь):

from bs4 import BeautifulSoup
import requests
import csv
from yandex_translate import YandexTranslate


csv_file = open("syno.csv", "w", newline = '')
csv_writer = csv.writer(csv_file)

 #making the request to the translater and so on, not written here, tell me if you need it but I don't think so. 

traduction =(translate.translate('bonjour', 'fr-ar'))

csv_writer.writerow([traduction["text"]])
csv_file.close()

Когда я собираю его в SublimeText спечатать вместо csvwriter, я получаю результат без проблем.Только когда я хочу написать в CSV, я получаю проблему.Любые идеи о том, как это исправить?

Я видел кое-что о кодировании или декодировании этого в UTF-8, но я не знаю, где добавить эту возможность

Спасибо!

1 Ответ

0 голосов
/ 13 ноября 2018

вы можете использовать UTF-8, объявив его в верхней части кода:

# -*- coding: <encoding name> -*-

, затем вы можете использовать кодировку / декодирование utf-8.
ОБНОВЛЕНИЕ: На основании этих ответов вы должныизмените другие среды Unicode, такие как ваша консоль.
[answer-1] [1]
[answer-2] [2]

попробуйте открыть файл в кодировке UTF-8:

csv_file = open("syno.csv", "w", encoding='utf-8', newline = '')
...