Форум сайта python.su
На помощь! Начал работать с Python'ом совсем недавно. Написал скрапер, который тащит метаданные с Google Play. Данные забираются и выводятся нормально (т.е. кириллица не сыпется), но при попытке записать эти данные в базу (юзаю модуль MySQLdb), как только встречается запись с кириллицей в поле, выбрасывает следующее:
_mysql_exceptions.OperationalError: (1366, “Incorrect string value: ‘\\xF0\\x9F\\x8D\\x80’ for column ‘title’ at row 1”)
conn = MySQLdb.connect('localhost', 'VProgramMist', '1998Vm0000', 'mobasta_history', charset='utf8', init_command='SET NAMES UTF8')
sql_str = """INSERT INTO history (app_id, title, score, price, free, iap, iap_range, size, installs, content_rating, date_point, category, collection) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""" cursor.execute(sql_str, ( row['app_id'], row['title'], row['score'], row['price'], row['free'], row['iap'], row['iap_range'], row["size"], row['installs'], row['content_rating'][0], datetime.date.today(), row['category'][0], row['collection']))
Отредактировано VProgramMist (Ноя. 17, 2018 11:05:38)
Офлайн
в начале файла есть
# -*- coding: utf-8 -*-
?
Офлайн
Нет) Сейчас попробую. А можете смысл строки объяснить? Точнее к чему именно применяется кодировка?
Офлайн
ZerG
в начале файла есть # -*- coding: utf-8 -*-?
Офлайн
Вы криво выгребаете данные.
Строка в начале файла нужна.
дальше нужно разбираться с источником данных.
Откудова в какой кодировке вам что приходит и только после этого совать уже в базу!
Если вы распечатаете
row['app_id'], row['title'], row['score'], row['price'], row['free'], row['iap'], row['iap_range'], row["size"], row['installs'], row['content_rating'][0], datetime.date.today(), row['category'][0], row['collection'])
Офлайн