sanjeev21 commited on
Commit
20db834
·
1 Parent(s): fa3c63f

Create sqlite_database.py

Browse files
Files changed (1) hide show
  1. sqlite_database.py +181 -0
sqlite_database.py ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sqlite3
2
+ import pandas as pd
3
+ import datetime
4
+
5
+ # Functions
6
+
7
+ def create_insert_table(db_name, table_name, df):
8
+ try:
9
+ sqliteconnection = sqlite3.connect('sqlite_databases/{}.db'.format(db_name))
10
+ cursor = sqliteconnection.cursor()
11
+ print('DB Init')
12
+
13
+ # Write a query and execute it with cursor
14
+ # query = 'SELECT sqlite_version();'
15
+ # cursor.execute(query)
16
+
17
+ # Fetch and Output Result
18
+ # result = cursor.fetchall()
19
+ # print('SQLite Version is {}'.format(result))
20
+
21
+ # Drop the table if already exists.
22
+ cursor.execute("DROP TABLE IF EXISTS {}".format(table_name))
23
+
24
+ # Creating table
25
+ bizrate_table_string = """ CREATE TABLE {} (
26
+ title VARCHAR(500),
27
+ Brand CHAR(100),
28
+ url TEXT,
29
+ Image TEXT,
30
+ Skus TEXT,
31
+ price VARCHAR(50),
32
+ originalPrice VARCHAR(50),
33
+ markdownPercent VARCHAR(50),
34
+ totalPrice VARCHAR(50),
35
+ condition VARCHAR(10),
36
+ stock VARCHAR(10),
37
+ relevancy REAL); """.format(table_name)
38
+
39
+ recsys_table_string = """ CREATE TABLE {} (
40
+ title VARCHAR(500),
41
+ Brand CHAR(100),
42
+ url TEXT,
43
+ Image TEXT,
44
+ Skus TEXT,
45
+ price REAL,
46
+ originalPrice REAL,
47
+ markdownPercent REAL,
48
+ totalPrice REAL,
49
+ condition VARCHAR(10),
50
+ stock VARCHAR(10),
51
+ relevancy REAL); """.format(table_name)
52
+
53
+ # Create Table
54
+ if db_name == 'bizrate':
55
+ table_string = bizrate_table_string
56
+ cursor.execute(table_string)
57
+ elif db_name == 'RecSysData':
58
+ table_string = recsys_table_string
59
+ cursor.execute(table_string)
60
+
61
+
62
+ # Inserting the DataFrame into the Sqlite Table
63
+ df.to_sql(table_name, sqliteconnection, if_exists='replace', index=False)
64
+ sqliteconnection.commit()
65
+ # Handle Errors
66
+ except sqlite3.Error as error:
67
+ print('Error Occured - ', error)
68
+
69
+ # Close the DB Connection Irrespective of Success or Failure
70
+ finally:
71
+ if sqliteconnection:
72
+ sqliteconnection.close()
73
+ print('SQLite Connection Closed.')
74
+
75
+
76
+ def query_table(db_name, table_name):
77
+ try:
78
+ sqliteconnection = sqlite3.connect('sqlite_databases/{}.db'.format(db_name))
79
+ cursor = sqliteconnection.cursor()
80
+ print('DB Init')
81
+
82
+
83
+ query_string = '''
84
+ SELECT *
85
+ FROM {}
86
+ '''.format(table_name)
87
+
88
+ query_op_df = pd.read_sql_query(query_string, sqliteconnection)
89
+
90
+ # Handle Errors
91
+ except sqlite3.Error as error:
92
+ print('Error Occured - ', error)
93
+
94
+ # Close the DB Connection Irrespective of Success or Failure
95
+ finally:
96
+ if sqliteconnection:
97
+ sqliteconnection.close()
98
+ print('SQLite Connection Closed.')
99
+
100
+ return query_op_df
101
+
102
+
103
+ def insert_clickdata_table(session_id, keyword, publisherid, sku, count):
104
+ try:
105
+ conn = sqlite3.connect('sqlite_databases/{}.db'.format('session_data'))
106
+ cursor = conn.cursor()
107
+ print('Click Data DB Init')
108
+
109
+ # Creating Table
110
+ table_string = """ CREATE TABLE IF NOT EXISTS session_data (
111
+ clicked_at TIMESTAMP,
112
+ session_id TEXT,
113
+ keyword VARCHAR(100),
114
+ publisherid VARCHAR(100),
115
+ Skus TEXT,
116
+ count INTEGER); """.format(table_name)
117
+ cursor.execute(table_string)
118
+ currentDateTime = datetime.datetime.now()
119
+ insert_string = '''INSERT INTO session_data VALUES ('{}', '{}', '{}', '{}', '{}', {})'''.format(currentDateTime, session_id, keyword, publisherid, sku, count)
120
+ print(insert_string)
121
+ cursor.execute(insert_string)
122
+ #cursor.execute('''INSERT INTO click_data (keyword, Skus) VALUES ({}, {})'''.format(table_name, keyword, sku))
123
+
124
+ conn.commit()
125
+
126
+
127
+ # Handle Errors
128
+ except sqlite3.Error as error:
129
+ print('Error Occured - ', error)
130
+
131
+ # Close the DB Connection Irrespective of Success or Failure
132
+ finally:
133
+ if conn:
134
+ conn.close()
135
+ print('SQLite Connection Closed.')
136
+
137
+
138
+ def check_for_table(db_name, table_name):
139
+ '''Checks whether the specified table exists within the specified database.
140
+ Returns True if it does.
141
+ Else returns False.'''
142
+
143
+ filepath = 'sqlite_databases/'
144
+ conn = sqlite3.connect(filepath + db_name + ".db")
145
+ cursor = conn.cursor()
146
+
147
+ query_string = '''
148
+ SELECT name
149
+ FROM sqlite_master
150
+ WHERE type = 'table' AND name='{}';
151
+ '''.format(table_name)
152
+
153
+ result = cursor.execute(query_string)
154
+ list_of_tables = result.fetchall()
155
+ conn.close()
156
+ # print(len(list_of_tables))
157
+ return bool(len(list_of_tables))
158
+
159
+ # Main Program
160
+
161
+ # Input
162
+ file_path = 'bizrate/aqua_725895.xlsx'
163
+
164
+ file_name = file_path.split('/')
165
+ db_name = file_name[0]
166
+ table_name = file_name[1].split('.')[0]
167
+
168
+
169
+ # # Creating Table/ Inserting Data
170
+ # print('Creating/Accessing the DataBase: {} ; Inserting Data into Table: {}'.format(db_name, table_name))
171
+
172
+ # df = pd.read_excel(file_path)
173
+ # .drop(columns='markdownpercent', inplace=True)
174
+
175
+ # create_insert_table(db_name, table_name, df)
176
+
177
+
178
+ # # Query Sqlite Database
179
+ # df = query_table(db_name, table_name)
180
+ # print(df.head())
181
+ # print(df.info())