1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import psycopg2 as pg
- from configparser import ConfigParser
- import pandas.io.sql as psql
-
- def config(filename='database.ini', section='postgresql'):
- """Config parser from http://www.postgresqltutorial.com/postgresql-python/connect/"""
- # create a parser
- parser = ConfigParser()
- # read config file
- parser.read(filename)
-
- # get section, default to postgresql
- db = {}
- if parser.has_section(section):
- params = parser.items(section)
- for param in params:
- db[param[0]] = param[1]
- else:
- raise Exception('Section {0} not found in the {1} file'.format(section, filename))
-
- return db
-
- def getQuery(query, qparams = []):
- """
- Get single query
- """
- conn = False
-
- try:
- params = config()
-
- print("Connecting to database")
-
- conn = pg.connect(**params)
- cur = conn.cursor()
-
- # Get table
- dataframe = psql.read_sql(query, conn, params = qparams)
-
- cur.close()
-
- return dataframe
-
- except (Exception, pg.DatabaseError) as error:
- print(error)
- return None
-
- finally:
- if conn is not False:
- conn.close()
- print('Database connection closed')
-
- if __name__ == "__main__":
- dv = getQuery('SELECT version()').version[0]
- print('PostgreSQL database version:')
- print(dv)
|