added sanitization on insert, empty strings in integer columns are replaced with 0

This commit is contained in:
2021-10-26 21:08:17 -06:00
parent 0589c7fce5
commit 0ad8ffe1c4
+27 -9
View File
@@ -32,15 +32,29 @@ def insertData(conn, table, values):
c.execute('INSERT INTO {} VALUES ({})'.format(table, holders), values)
conn.commit()
def sanatizeTotals(values):
def sanitizeTotals(unsanitized):
"""
checks cells and replaces empty string with 0
checks indexes 2+ and replaces empty string with 0
"""
values = unsanitized[0:2]
for value in unsanitized[2:]:
if value:
values.append(value)
else:
values.append(0)
return tuple(values)
def sanatizeWorkarea(values):
def sanitizeWorkarea(unsanitized):
"""
checks indexes 6+ and replaces empty string with 0
"""
values = unsanitized[0:6]
for value in unsanitized[6:]:
if value:
values.append(value)
else:
values.append(0)
return tuple(values)
def extractDsw(srcSheet, conn, reportDate):
"""
@@ -54,22 +68,24 @@ def extractDsw(srcSheet, conn, reportDate):
#exit test comes first
if 'Total' in srcSheet.cell(i,0).value:
# We need to get the contract totals so we'll do that here
values = ('contract', reportDate, srcSheet.cell(i,6).value,
unsanitized = ['contract', reportDate, srcSheet.cell(i,6).value,
srcSheet.cell(i,7).value, srcSheet.cell(i,8).value,
srcSheet.cell(i,10).value, srcSheet.cell(i,11).value,
srcSheet.cell(i,12).value, srcSheet.cell(i,13).value,
srcSheet.cell(i,14).value, srcSheet.cell(i,20).value,
srcSheet.cell(i,18).value, srcSheet.cell(i,32).value,
srcSheet.cell(i,33).value, srcSheet.cell(i,34).value)
srcSheet.cell(i,33).value, srcSheet.cell(i,34).value]
values = sanitizeTotals(unsanitized)
insertData(conn, 'totals', values)
i += 1
values = ('terminal', reportDate, srcSheet.cell(i,6).value,
unsanitized = ['terminal', reportDate, srcSheet.cell(i,6).value,
srcSheet.cell(i,7).value, srcSheet.cell(i,8).value,
srcSheet.cell(i,10).value, srcSheet.cell(i,11).value,
srcSheet.cell(i,12).value, srcSheet.cell(i,13).value,
srcSheet.cell(i,14).value, srcSheet.cell(i,20).value,
srcSheet.cell(i,18).value, srcSheet.cell(i,32).value,
srcSheet.cell(i,33).value, srcSheet.cell(i,34).value)
srcSheet.cell(i,33).value, srcSheet.cell(i,34).value]
values = sanitizeTotals(unsanitized)
insertData(conn, 'totals', values)
#we're done so exit
break
@@ -82,13 +98,15 @@ def extractDsw(srcSheet, conn, reportDate):
else:
tod = srcSheet.cell(i,26).value
nod = srcSheet.cell(i,28).value
values = (srcSheet.cell(i,0).value, reportDate, srcSheet.cell(i,1).value,
unsanitized = [srcSheet.cell(i,0).value, reportDate, srcSheet.cell(i,1).value,
srcSheet.cell(i,3).value, tod, nod,
srcSheet.cell(i,9).value,
srcSheet.cell(i,10).value, srcSheet.cell(i,11).value,
srcSheet.cell(i,12).value, srcSheet.cell(i,2).value,
srcSheet.cell(i,24).value, srcSheet.cell(i,13).value,
srcSheet.cell(i,19).value, srcSheet.cell(i,17).value)
srcSheet.cell(i,19).value, srcSheet.cell(i,17).value]
values = sanitizeWorkarea(unsanitized)
print(values)
insertData(conn, 'dsw', values)
if 'Svc' in srcSheet.cell(i,0).value:
extract = True