Python Encoding NLTK - кодек 'charmap' не может кодировать символ
import pypyodbc
from pypyodbc import *
import nltk
from nltk import *
import csv
import sys
import codecs
import re
#connect to the database
conn = pypyodbc.connect('Driver={Microsoft Access Driver (*.Mdb)};\
DBQ=C:\\TextData.mdb')
#create a cursor to control the datbase with
cur = conn.cursor()
cur.execute('''SELECT Text FROM MessageCreationDate WHERE Tags LIKE 'GHS - %'; ''')
TextSet = cur.fetchall()
ghsWordList = []
TextWords = list(TextSet)
for row in TextWords :
message = re.split('\W+',str(row))
for eachword in message :
if eachword.isalpha() :
ghsWordList.append(eachword.lower())
print(ghsWordList)
Когда я запускаю этот код, он дает мне ошибку:
'charmap' codec can't encode character '\u0161' in position 2742: character maps to <undefined>
Я посмотрел на ряд других ответов здесь на подобные вопросы, и погуглил до чертиков; однако я недостаточно хорошо разбираюсь в Python или в кодировке символов, чтобы знать, где мне нужно использовать модуль кодеков для изменения набора символов, используемого для представления / добавления / создания списка?
Может ли кто-нибудь не только помочь мне с кодом, но и указать мне несколько хороших материалов для чтения для понимания такого рода вещей?
1 ответ
Если вы используете Python 2.x, добавьте в свой код следующие строки:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
Примечание: если вы используете Python 3.x, перезагрузка не является встроенной, это imp.relaod(), поэтому для работы моего решения необходимо добавить импорт. Я не развиваюсь в 3.x, поэтому я предлагаю следующее:
from imp import reload
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
Поместите это впереди всего вашего другого импорта.