Форум сайта python.su
Здравствуйте.
Интересная задача имеется: в автоматическом режиме собираются данные за несколько минут, а потом пачкой обрабатываются и вставляются в базу MySQL. Иногда количество записей может превышать 200, а то и больше. При этом бывает, что какая-то запись испорчена и вся пачка не вставляется, при таком логе найти ту запись сложно:
... (part of Traceback is skipped) ... "/usr/local/lib/python3.6/site-packages/sqlalchemy/engine/base.py\", line 948, in execute\n return meth(self, multiparams, params)\n ... (part of Traceback is skipped) ... File \"/usr/local/lib/python3.6/site-packages/mysql/connector/connection.py\", line 396, in _handle_result\n raise errors.get_exception(packet)\nsqlalchemy.exc.DataError: (mysql.connector.errors.DataError) 1264 (22003): Out of range value for column 'tlm_1' at row 722 ... Здесь идет длинный запрос ...
Офлайн
Master_SergiusВообще, по этой же причине принято писать код так, чтобы на одной строке стоял только один оператор. Тогда при ошибке и указании строки с ошибкой (в отладчике или при компиляции) сразу указывается оператор, в котором произошла ошибка. Так что надо попробовать разбить на строки команду, чтобы “записи” стояли по одной записи на одной строке.
Имеется ли какая-то возможность логировать/выделить проблемную запись со всего списка?
Офлайн