import psycopg2 from contextlib import closing import json import sys database = "" user = "" password = "" host = "" port = 5432 sql_queries = { 'ads': """SELECT uow_meta.unit_of_work.uow_id,uow_meta.unit_of_work.status,uow_meta.audit_log.extra_data,uow_meta.audit_log.new_status FROM uow_meta.unit_of_work INNER JOIN uow_meta.audit_log ON uow_meta.unit_of_work.uow_id = uow_meta.audit_log.uow_id WHERE status = 'IMPORT_FAILED' AND project = 'decibel' AND new_status = 'IMPORT_FAILED' AND uow_meta.audit_log.created_at >= current_date - 2""", 'linkfire': """SELECT uow_meta.unit_of_work.uow_id,uow_meta.unit_of_work.status,uow_meta.audit_log.extra_data,uow_meta.audit_log.new_status FROM uow_meta.unit_of_work INNER JOIN uow_meta.audit_log ON uow_meta.unit_of_work.uow_id = uow_meta.audit_log.uow_id WHERE status = 'IMPORT_FAILED' AND project = 'linkfire' AND new_status = 'IMPORT_FAILED' AND uow_meta.audit_log.created_at >= current_date - 2""", 'cm_charts_yt': """SELECT uow_meta.unit_of_work.uow_id,uow_meta.unit_of_work.status,uow_meta.audit_log.extra_data,uow_meta.audit_log.new_status FROM uow_meta.unit_of_work INNER JOIN uow_meta.audit_log ON uow_meta.unit_of_work.uow_id = uow_meta.audit_log.uow_id WHERE status = 'IMPORT_FAILED' AND project = 'cm_charts_yt' AND new_status = 'IMPORT_FAILED' AND uow_meta.audit_log.created_at >= current_date - 2""" } # grab sql data with closing connection after it def fetch_sql_data(sql_query): result = [] with closing(psycopg2.connect(database=database, user=user, password=password, host=host, port=port)) as connection: with connection.cursor() as cursor: cursor.execute(sql_query) columns = cursor.description rows = cursor.fetchall() for row in rows: tmp = {} for i in range(len(columns)): tmp[columns[i][0]] = row[i] result.append(tmp) return result if __name__ == '__main__': if len(sys.argv) > 1: arg = str(sys.argv[1]) data_list = fetch_sql_data(sql_queries[arg]) ################ print result ################ if len(data_list) <= 150: for row in data_list: print(json.dumps(row, indent=4)) print("-" * 10) else: print("query output is too big, better to check it via DB client") else: print("no arguments were given")