Я работаю со статьями из интернет-газет с базой данных mysql и python. Я хочу использовать метод pandas to_sql на фрейме данных для добавления недавно очищенных статей в таблицу mysql. Это работает довольно хорошо, но у меня есть некоторые проблемы со следующим:
Поскольку статьи автоматически удаляются с новостных сайтов, около 1% из них имеют проблемы (кодировка, слишком длинный текст или тому подобное), и они не помещаются в полях таблицы mysql. Метод Pandas to_sql по какой-то причине игнорирует эти ошибки и отбрасывает неподходящие строки. Например, у меня есть следующая таблица mysql:
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(255) | YES | | NULL | |
| description | text | YES | | NULL | |
| content | text | YES | | NULL | |
| link | varchar(300) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
И у меня также есть Dataframe, который содержит 15 строк и 4 столбца (заголовок, описание, содержимое, ссылка).
Если 1 из этих строк имеет заголовок, превышающий 255 символов, он не помещается в таблицу mysql. Я ожидал ошибку при выполнении df.to_sql('press', con=con, index=False, if_exists='append')
, поэтому я знаю, что у меня есть проблема, которую нужно исправить; но фактический результат состоял в том, что 14 строк были добавлены вместо 15.
Это может сработать для меня, но мне нужно знать, какая строка была отброшена, чтобы я мог пометить ее для последующей ревизии. Можно ли сказать пандам сообщить мне, какие индексы игнорируются?
Спасибо!