#! env/bin/python3 # import the psycopg2 database adapter for PostgreSQL import psycopg2 from psycopg2.extras import Json import json import sys def connect_db(db: str,host: str,user: str,passwd: str): try: # declare a new PostgreSQL connection object conn = psycopg2.connect( dbname = db, user = user, host = host, password = passwd, # attempt to connect for 3 seconds then raise exception connect_timeout = 3 ) except (Exception, psycopg2.Error) as err: #print ("\npsycopg2 connect error:", err) conn = None return conn def get_db_creds(file: str): with open(file) as cred_file: creds = json.load(cred_file) return creds def insert_data(conn, data): # insert a new vendor into the vendors table sql = """ INSERT INTO air(datetime, temperature, humidity) VALUES (%s, %s, %s) """ try: # open cursor on our db connection cur = conn.cursor() # execute the INSERT statement data = (data["datetime"], data["temperature"], data["humidity"]) cur.execute(sql,data) # commit the changes to the database conn.commit() # close communication with the database cur.close() except (Exception, psycopg2.DatabaseError) as error: print(error) finally: if conn is not None: conn.close() if __name__ == "__main__": data = { "datetime": "2021-10-23 01:58:08.205911", "temperature": "73.4", "humidity": "49.2" } creds = get_db_creds("./.creds.json") conn = connect_db(creds["db"], creds["host"], creds["user"], creds["passwd"]) insert_data(conn, data)