Регистрация неудачных вставок при вставке данных в Mysql с использованием sqlalchemy - PullRequest
0 голосов
/ 13 января 2020

У меня есть запрос sql, который должен выполняться на MS sql и выводит результирующие данные в Mysql. Я использую python скрипт для этой цели. Но некоторые записи терпят неудачу при их вставках, возможно, из-за несоответствия / неприятия типа данных. В этот момент я хочу добавить исключение с сообщением об ошибке «Ошибка вставки записи» и записать эти ошибочные записи в файл CSV с дополнительным столбцом описания ошибки. python 3.6 mysql 2012 Вот мой python скрипт

import pandas as pd
import sqlalchemy
import pymysql
#import datetime
df = pd.read_csv('output1.csv', index_col = 0)
Count = len(df)

try:
    print("Initializing..")
    engine = sqlalchemy.create_engine('mysql+pymysql://xxx:xxxx@45.45.78.596/xxxxxxx')
    print('connected..')
    df.to_sql('tablename', con=engine, if_exists='replace',index=True,chunksize=25)
    print('output Import Started')
except Exception as e:
    print('Unable to start import due to:', e)
    counter = 25
try:
    counter = 25
    while counter <= (len(df) - 25):
        df = df.iloc[counter:(counter+25)]
        engine = sqlalchemy.create_engine('mysql+pymysql://xxx:xxxx@45.45.78.596/xxxxxxx')
        df.to_sql('tablename', con=engine, if_exists='append',index=True,chunksize=25) 
        counter = counter + 25
        print(min(counter, Count), 'records imported')
except Exception as e:
    print('Unable to complete import due to:', e)

Есть ли простой способ сделать это?

...