fix: quote table names too, so any undesired characters should get accommodated

This commit is contained in:
gowthaman 2023-06-17 23:33:31 +05:30
parent 8c96998c9d
commit 66133cc661

10
main.py
View File

@ -35,7 +35,8 @@ class DBConn:
def make_table(self, tbl_name, cols):
syspk = "syspk integer primary key autoincrement"
other_cols = ', '.join([f"\"{f}\" TEXT" for f in cols])
create_tbl_sql = f"create table if not exists {tbl_name} ({syspk}, {other_cols})"
create_tbl_sql = f"create table if not exists \"{tbl_name}\" ({syspk}, {other_cols})"
print(f"create sql = {create_tbl_sql}")
self.cur.execute(create_tbl_sql)
def write_to_database(self, tbl, cols):
@ -50,7 +51,8 @@ class DBConn:
# trim values of spaces
values = tuple([str(cols[k]).strip() for k in keys])
sql = f"insert into {tbl} ({col_names}) values({value_placeholders})"
sql = f"insert into \"{tbl}\" ({col_names}) values({value_placeholders})"
print(f"sql = {sql}")
self.cur.execute(sql, values)
def make_csv_from_tables(self, prefix=''):
@ -58,11 +60,11 @@ class DBConn:
tbls = []
for (tbl,) in dbConn.cur.fetchall():
if tbl.find("transactions") == 0:
if tbl.find(args.name) == 0:
tbls.append(tbl)
for tbl in tbls:
clients = pd.read_sql(f"SELECT * FROM {tbl}", self.con)
clients = pd.read_sql(f"SELECT * FROM \"{tbl}\"", self.con)
clients.to_csv(args.output / f"{prefix}{tbl}.csv", index=False)