added sanitization on insert, empty strings in integer columns are replaced with 0
This commit is contained in:
+27
-9
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user