Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 30, 2019 09:12:56

sonic911
Зарегистрирован: 2018-01-07
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Non BMP символы в ответе select запроса

День добрый!

Делаю запрос к sqlite базе данных и вытягиваю оттуда информацию о сообщении (Текст сообщения, дату, ссылку на картинку и т.д.)

Проблема в том, что в сообщении иногда пролетает следующая ошибка:

 UnicodeEncodeError: 'UCS-2' codec can't encode characters in 
position 20-21 Non-BMP character not supported in Tk.

Например, ошибка вылазит из-за эмодзи.

Сам результат select'а записываю в csv файл.

Можно ли каким-либо образом заигнорить эту ошибку, получается большой “list of lists”, в котором очень геморно делать что-нибудь вроде join?

Офлайн

#2 Янв. 30, 2019 14:28:10

sonic911
Зарегистрирован: 2018-01-07
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Non BMP символы в ответе select запроса

Сделал, может будет полезно:

Из stackoverflow:

 non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd)

Из sqlite запроса делаем строку: и обрабатываем мэпом:

 str(info).translate(non_bmp_map)

Далее используя ast:
 ast.literal_eval(info)
- возвращаем обратно к прежнему виду.

От замененного символа избавляемся используя
 errors='ignore'
при открытии файла.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version