На помощь! Начал работать с Python'ом совсем недавно. Написал скрапер, который тащит метаданные с Google Play. Данные забираются и выводятся нормально (т.е. кириллица не сыпется), но при попытке записать эти данные в базу (юзаю модуль MySQLdb), как только встречается запись с кириллицей в поле, выбрасывает следующее:
_mysql_exceptions.OperationalError: (1366, “Incorrect string value: ‘\\xF0\\x9F\\x8D\\x80’ for column ‘title’ at row 1”)
Кодировка базы, таблиц и полей utf8_general_ci.
Связь с базой устанавливаю следующим образом:
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']))
Версия Python 3.7
Версия MySQL - 5.7
P.S. Решил записывать каждую считанную запись. Увидел, что в базу записываются строки с кириллицей. Т.е. что-то он записывает, а на чем-то (например, когда доходит до приложения "Юла"), всё летит к чертям...