Spaces:
Runtime error
Runtime error
| import sqlite3 | |
| import pandas as pd | |
| import datetime | |
| # Functions | |
| def create_insert_table(db_name, table_name, df): | |
| try: | |
| sqliteconnection = sqlite3.connect('sqlite_databases/{}.db'.format(db_name)) | |
| cursor = sqliteconnection.cursor() | |
| print('DB Init') | |
| # Write a query and execute it with cursor | |
| # query = 'SELECT sqlite_version();' | |
| # cursor.execute(query) | |
| # Fetch and Output Result | |
| # result = cursor.fetchall() | |
| # print('SQLite Version is {}'.format(result)) | |
| # Drop the table if already exists. | |
| cursor.execute("DROP TABLE IF EXISTS {}".format(table_name)) | |
| # Creating table | |
| bizrate_table_string = """ CREATE TABLE {} ( | |
| title VARCHAR(500), | |
| Brand CHAR(100), | |
| url TEXT, | |
| Image TEXT, | |
| Skus TEXT, | |
| price VARCHAR(50), | |
| originalPrice VARCHAR(50), | |
| markdownPercent VARCHAR(50), | |
| totalPrice VARCHAR(50), | |
| condition VARCHAR(10), | |
| stock VARCHAR(10), | |
| relevancy REAL); """.format(table_name) | |
| recsys_table_string = """ CREATE TABLE {} ( | |
| title VARCHAR(500), | |
| Brand CHAR(100), | |
| url TEXT, | |
| Image TEXT, | |
| Skus TEXT, | |
| price REAL, | |
| originalPrice REAL, | |
| markdownPercent REAL, | |
| totalPrice REAL, | |
| condition VARCHAR(10), | |
| stock VARCHAR(10), | |
| relevancy REAL); """.format(table_name) | |
| clickReport_table_string = """ CREATE TABLE {} ( | |
| report_date VARCHAR(50), | |
| publisher_id VARCHAR(10), | |
| campaign_id VARCHAR(50), | |
| placement_id VARCHAR(10), | |
| rid TEXT, | |
| keyword TEXT, | |
| Skus TEXT, | |
| clicks REAL, | |
| earnings REAL, | |
| cpc REAL); """.format(table_name) | |
| # Create Table | |
| if db_name == 'bizrate': | |
| table_string = bizrate_table_string | |
| cursor.execute(table_string) | |
| elif db_name == 'RecSysData': | |
| table_string = recsys_table_string | |
| cursor.execute(table_string) | |
| elif db_name == 'clickReport': | |
| table_string = clickReport_table_string | |
| cursor.execute(table_string) | |
| # Inserting the DataFrame into the Sqlite Table | |
| df.to_sql(table_name, sqliteconnection, if_exists='replace', index=False) | |
| sqliteconnection.commit() | |
| # Handle Errors | |
| except sqlite3.Error as error: | |
| print('Error Occured - ', error) | |
| # Close the DB Connection Irrespective of Success or Failure | |
| finally: | |
| if sqliteconnection: | |
| sqliteconnection.close() | |
| print('SQLite Connection Closed.') | |
| def query_table(db_name, table_name): | |
| try: | |
| sqliteconnection = sqlite3.connect('sqlite_databases/{}.db'.format(db_name)) | |
| cursor = sqliteconnection.cursor() | |
| print('DB Init') | |
| query_string = ''' | |
| SELECT * | |
| FROM {} | |
| '''.format(table_name) | |
| query_op_df = pd.read_sql_query(query_string, sqliteconnection) | |
| # Handle Errors | |
| except sqlite3.Error as error: | |
| print('Error Occured - ', error) | |
| # Close the DB Connection Irrespective of Success or Failure | |
| finally: | |
| if sqliteconnection: | |
| sqliteconnection.close() | |
| print('SQLite Connection Closed.') | |
| return query_op_df | |
| def insert_clickdata_table(session_id, keyword, publisherid, sku, count): | |
| try: | |
| conn = sqlite3.connect('sqlite_databases/{}.db'.format('session_data')) | |
| cursor = conn.cursor() | |
| print('Click Data DB Init') | |
| # Creating Table | |
| table_string = """ CREATE TABLE IF NOT EXISTS session_data ( | |
| clicked_at TIMESTAMP, | |
| session_id TEXT, | |
| keyword VARCHAR(100), | |
| publisherid VARCHAR(100), | |
| Skus TEXT, | |
| count INTEGER); """.format(table_name) | |
| cursor.execute(table_string) | |
| currentDateTime = datetime.datetime.now() | |
| insert_string = '''INSERT INTO session_data VALUES ('{}', '{}', '{}', '{}', '{}', {})'''.format(currentDateTime, session_id, keyword, publisherid, sku, count) | |
| print(insert_string) | |
| cursor.execute(insert_string) | |
| #cursor.execute('''INSERT INTO click_data (keyword, Skus) VALUES ({}, {})'''.format(table_name, keyword, sku)) | |
| conn.commit() | |
| # Handle Errors | |
| except sqlite3.Error as error: | |
| print('Error Occured - ', error) | |
| # Close the DB Connection Irrespective of Success or Failure | |
| finally: | |
| if conn: | |
| conn.close() | |
| print('SQLite Connection Closed.') | |
| def check_for_table(db_name, table_name): | |
| '''Checks whether the specified table exists within the specified database. | |
| Returns True if it does. | |
| Else returns False.''' | |
| filepath = 'sqlite_databases/' | |
| conn = sqlite3.connect(filepath + db_name + ".db") | |
| cursor = conn.cursor() | |
| query_string = ''' | |
| SELECT name | |
| FROM sqlite_master | |
| WHERE type = 'table' AND name='{}'; | |
| '''.format(table_name) | |
| result = cursor.execute(query_string) | |
| list_of_tables = result.fetchall() | |
| conn.close() | |
| # print(len(list_of_tables)) | |
| return bool(len(list_of_tables)) | |
| # Main Program | |
| # Input | |
| file_path = 'bizrate/aqua_725895.xlsx' | |
| file_name = file_path.split('/') | |
| db_name = file_name[0] | |
| table_name = file_name[1].split('.')[0] | |
| # # Creating Table/ Inserting Data | |
| # print('Creating/Accessing the DataBase: {} ; Inserting Data into Table: {}'.format(db_name, table_name)) | |
| # df = pd.read_excel(file_path) | |
| # .drop(columns='markdownpercent', inplace=True) | |
| # create_insert_table(db_name, table_name, df) | |
| # # Query Sqlite Database | |
| # df = query_table(db_name, table_name) | |
| # print(df.head()) | |
| # print(df.info()) | |