Я использую scrapy для извлечения данных с веб-сайта. Я сохраняю данные в базе данных mysql с помощью MysqlDB. Скрипт работает на английских сайты, но когда я пытаюсь его на шведском сайте я получаю:Кодирование Python для шведских символов
self.db.query(insertion_query)
exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 156:
ordinal not in range(128)
Я поставил следующую строку в верхней части каждого файла, участвующем в процессе очищающего указать использование международного charachters : # - - кодировка: utf-8 - -
Но у меня все еще есть ошибка. Что еще мне нужно, чтобы python принимал неанглийские атрибуты? Вот целая трассировка стека:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\scrapy-0.14.3-py2.7-win32.egg\scrapy\middleware.py",
line 60, in _process_
chain
return process_chain(self.methods[methodname], obj, *args)
File "C:\Python27\lib\site-packages\scrapy-0.14.3-py2.7-win32.egg\scrapy\utils\defer.py",
line 65, in process_
chain
d.callback(input)
File "C:\Python27\lib\site-packages\twisted\internet\defer.py", line 368, in callback
self._startRunCallbacks(result)
File "C:\Python27\lib\site-packages\twisted\internet\defer.py", line 464, in
_startRunCallbacks
self._runCallbacks()
--- <exception caught here> ---
File "C:\Python27\lib\site-packages\twisted\internet\defer.py", line 551, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "C:\Python27\tco\tco\pipelines.py", line 64, in process_item
self.db.query(insertion_query)
exceptions.UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 156:
ordinal not in range(128)
делать себе и действительно прочитайте это: http://docs.python.org/howto/unicode.html - это только сэкономит ваше время. – WeaselFox
Какую оболочку базы данных вы используете? – BluePeppers
Пожалуйста, добавьте трассировку стека к вопросу. –