from sqlalchemy import Table, create_engine, MetaData import os import csv engine = create_engine('postgresql://mlpdb_user:Serenitas1@debian/mlpdb') metadata = MetaData(bind = engine) quotes = Table('quotes', metadata, autoload = True) ins = quotes.insert() root_dir = '/home/share/CorpCDOs' quotefiles = [f for f in os.listdir(os.path.join(root_dir, 'Scenarios', 'Calibration')) if 'tranches' in f] for quotefile in quotefiles: with open(os.path.join(root_dir, 'Scenarios', 'Calibration', quotefile)) as fh: quotedate = os.path.splitext(quotefile)[0].split("_")[-1] reader = csv.DictReader(fh) data = [] for i, csvdict in enumerate(reader): d = {'quotedate' : quotedate, 'refbasketprice': csvdict['bidRefPrice'], 'tranchedelta': csvdict['bidDelta'], 'quotesource' : csvdict['AskContributorCode'], 'upfront' : csvdict['Mid'], 'running' : float(csvdict['Coupon']) * 10000 if 'Coupon' in csvdict else 500, 'tenor' : 'Y5', 'basketid' : 182910, 'trancheid' : 182910+i} data.append(d) with engine.begin() as conn: conn.execute(ins, data)