Я написал простой скрипт на python, который сбрасывает веб-сайт для некоторых данных и сохраняет его в список, называемый данными. Некоторые данные имеют символы Unicode, я хочу записать этот список в CSV-файл и сохранить символы unicode в ascii.Запись юникода в файл в ascii в python (например, как u ' xa0EC)
Когда я печатаю список в оболочке python, символы Юникода отображаются как, например, «u» \ xa0EC », и я просто хочу, чтобы они были сохранены точно так же, как в .csv, чтобы их можно было интерпретировать позже в Unicode/UTF-8.
Я уверен, что это не может быть, что трудно, но я либо получаю «ASCii кодек не может кодировать ...» ошибка или то, что я в данный момент заменяет их с вопросительными знаками -
f = codecs.open('data2.csv', mode='wb', encoding="ascii", errors='ignore')
writer = csv.writer(f)
writer.writerow([i.encode('ascii','replace') if type(i) is unicode else i for i in data])
f.close()
Извините, если до этого был дан ответ, я искал, но каждый другой вопрос, похоже, означает, что люди хотят, чтобы они были преобразованы.
Вместо от кодирования до ascii (что означает потерю данных), почему бы не закодировать его на utf-8? – user590028
Выход будет загружен в серию, где он будет интерпретироваться в UTF-8, но он должен быть загружен в ascii. – JimmyBoom
Вы рассматривали использование html-экранов, таких как 'u '\ xa0EC'.encode (' ascii ',' xmlcharrefreplace ') == b' EC'' , если содержимое поля * есть * html. Или просто выгрузите весь список как json: 'json.dumps ([u '\ xa0EC']) == '[" \\ u00a0EC "]'' – jfs