Advertisement
Guest User

Untitled

a guest
Oct 25th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.26 KB | None | 0 0
  1. def get_db_credentials():
  2.     cd = os.path.dirname(os.path.abspath(__file__))
  3.     csv_file = os.path.join(cd, "db_credentials.csv")
  4.  
  5.     with open(csv_file) as file:
  6.         read_csv = csv.reader(file, delimiter=";")
  7.         db__credentials = {row[0]: row[1] for row in read_csv}
  8.  
  9.     conn = psycopg2.connect(host=db__credentials["hostname_db"],
  10.                             user=db__credentials["username_db"],
  11.                             password=db__credentials["password_db"],
  12.                             dbname=db__credentials["database_db"],
  13.                             port=db__credentials["port_db"])
  14.     cur = conn.cursor()
  15.  
  16.     return conn, cur
  17.  
  18. def save_to_db(df, conn, cur, table_name):
  19.     values = df.to_dict(orient="split")["data"]
  20.     signs = '(' + ('%s,' * len(values[0]))[:-1] + ')'
  21.     try:
  22.         args_str = b','.join(cur.mogrify(signs, x) for x in values)
  23.         args_str = args_str.decode()
  24.         print(args_str)
  25.         insert_statement = """INSERT INTO {} VALUES""".format(table_name)
  26.         conflict_statement = """ ON CONFLICT DO NOTHING"""
  27.         cur.execute(insert_statement + args_str + conflict_statement)
  28.         conn.commit()
  29.     except Exception:
  30.         conn.rollback()
  31.         return False
  32.     else:
  33.         return True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement