import pandas as pd from sqlalchemy import create_engine from database import conn_string cfg = { 'clients': ['deop01', 'deop02', 'deop03', 'deop04', 'deop05', 'deop06', 'deop07', 'deop08', 'deop09', 'deop10', 'deop11', 'deop12', 'deop13', 'deop14', 'deop15', 'deop16', 'deop17', 'deop18', 'deop19', 'deop20', 'deop21', 'deop22', 'deop23', 'deop24', 'deop25', 'deop26', 'deop27', 'deop28', 'deop29', 'deho02', 'deni02'], 'date_filter': "'2019-01-01'", 'source_dsn': {'user': 'sa', 'pass': 'Mffu3011#', 'server': 'GC-SERVER1\\GLOBALCUBE', 'database': 'desk01', 'driver': 'mssql'}, 'source_schema': 'dbo', 'source_query': 'Belege_Planung_Ist_FC.sql', 'source_header': ['Datenbank', 'Betrieb_Nr', 'Marke', 'Konto_Nr', 'Bookkeep_Period', 'Betrag', 'Menge'], 'target_csv': 'Belege_Planung_Ist_FC.csv' } def db_import(select_query, source_db, current_table, target_db, target_schema): pd.read_sql(select_query, source_db).to_sql(current_table['target'], target_db, schema=target_schema, index=False, if_exists='append') source_db = create_engine(conn_string(cfg['source_dsn'])) with open(cfg['source_query'], 'r') as f: select_query = f.read() with open(cfg['target_csv'], 'w') as f: f.write(';'.join(cfg['source_header']) + '\n') for current_client in cfg['clients']: current_query = select_query.replace('desk01', current_client) pd.read_sql(current_query, source_db).to_csv(cfg['target_csv'], sep=';', decimal=',', encoding='latin-1', index=False, header=False, mode='a') print(current_client)