Scezui commited on
Commit
ac5df6b
1 Parent(s): e436546

updated the create_csv, looped the number of items

Browse files
Files changed (1) hide show
  1. app.py +19 -11
app.py CHANGED
@@ -260,13 +260,13 @@ def create_csv():
260
  'TRANSACTIONDATE', 'TRANSACTIONTIME', 'ITEMS',
261
  'PRICE', 'TOTAL', 'VATTAX'
262
  ]
263
-
264
  # Iterate through JSON files in the folder
265
  for filename in os.listdir(json_folder_path):
266
  if filename.endswith(".json"):
267
  json_file_path = os.path.join(json_folder_path, filename)
268
 
269
- with open(json_file_path, 'r') as file:
270
  data = json.load(file)
271
  all_data = data.get('output', [])
272
 
@@ -277,21 +277,29 @@ def create_csv():
277
  text = item['text'].replace('|', '') # Strip the pipe character
278
  if label == 'VATTAX' or label == 'TOTAL':
279
  text = replace_symbols_with_period(text.replace(' ', '')) # Remove spaces and replace symbols with periods
280
- if label in label_texts:
281
- label_texts[label].append(text)
 
 
 
 
 
282
  else:
283
- label_texts[label] = [text]
 
 
 
284
 
285
  # Writing data to CSV file with ordered columns
286
  csv_file_path = os.path.join(output_folder_path, os.path.splitext(filename)[0] + '.csv')
287
- with open(csv_file_path, 'w', newline='') as csvfile:
288
  csv_writer = csv.DictWriter(csvfile, fieldnames=column_order, delimiter=",")
289
  if os.path.getsize(csv_file_path) == 0:
290
  csv_writer.writeheader()
291
 
292
  # Constructing rows for the CSV file
293
- max_length = max(len(v) for v in label_texts.values())
294
- for i in range(max_length):
295
  row_data = {}
296
  for label in column_order:
297
  if label in label_texts: # Check if the label exists in the dictionary
@@ -306,9 +314,9 @@ def create_csv():
306
  row_data[label] = '' # If the label does not exist, set the value to an empty string
307
  csv_writer.writerow(row_data)
308
 
309
- # Combining contents of CSV files into a single CSV file
310
  output_file_path = r"static/temp/inferenced/output.csv"
311
- with open(output_file_path, 'w', newline='') as combined_csvfile:
312
  combined_csv_writer = csv.DictWriter(combined_csvfile, fieldnames=column_order, delimiter=",")
313
  combined_csv_writer.writeheader()
314
 
@@ -318,7 +326,7 @@ def create_csv():
318
  csv_file_path = os.path.join(output_folder_path, csv_filename)
319
 
320
  # Read data from CSV file and write to the combined CSV file
321
- with open(csv_file_path, 'r') as csv_file:
322
  csv_reader = csv.DictReader(csv_file)
323
  for row in csv_reader:
324
  combined_csv_writer.writerow(row)
 
260
  'TRANSACTIONDATE', 'TRANSACTIONTIME', 'ITEMS',
261
  'PRICE', 'TOTAL', 'VATTAX'
262
  ]
263
+ # Save
264
  # Iterate through JSON files in the folder
265
  for filename in os.listdir(json_folder_path):
266
  if filename.endswith(".json"):
267
  json_file_path = os.path.join(json_folder_path, filename)
268
 
269
+ with open(json_file_path, 'r', encoding='utf-8') as file:
270
  data = json.load(file)
271
  all_data = data.get('output', [])
272
 
 
277
  text = item['text'].replace('|', '') # Strip the pipe character
278
  if label == 'VATTAX' or label == 'TOTAL':
279
  text = replace_symbols_with_period(text.replace(' ', '')) # Remove spaces and replace symbols with periods
280
+
281
+ if label == 'TRANSACTIONTIME':
282
+ # Concatenate all words for 'TRANSACTIONTIME' labels
283
+ if label in label_texts:
284
+ label_texts[label][0] += ": " + text # Add a colon and a space before the text
285
+ else:
286
+ label_texts[label] = [text]
287
  else:
288
+ if label in label_texts:
289
+ label_texts[label].append(text)
290
+ else:
291
+ label_texts[label] = [text]
292
 
293
  # Writing data to CSV file with ordered columns
294
  csv_file_path = os.path.join(output_folder_path, os.path.splitext(filename)[0] + '.csv')
295
+ with open(csv_file_path, 'w', encoding='utf-8') as csvfile:
296
  csv_writer = csv.DictWriter(csvfile, fieldnames=column_order, delimiter=",")
297
  if os.path.getsize(csv_file_path) == 0:
298
  csv_writer.writeheader()
299
 
300
  # Constructing rows for the CSV file
301
+ num_items = len(label_texts.get('ITEMS', []))
302
+ for i in range(num_items):
303
  row_data = {}
304
  for label in column_order:
305
  if label in label_texts: # Check if the label exists in the dictionary
 
314
  row_data[label] = '' # If the label does not exist, set the value to an empty string
315
  csv_writer.writerow(row_data)
316
 
317
+ # Combining contents of CSV files into a single CSV file
318
  output_file_path = r"static/temp/inferenced/output.csv"
319
+ with open(output_file_path, 'w', newline='', encoding='utf-8') as combined_csvfile:
320
  combined_csv_writer = csv.DictWriter(combined_csvfile, fieldnames=column_order, delimiter=",")
321
  combined_csv_writer.writeheader()
322
 
 
326
  csv_file_path = os.path.join(output_folder_path, csv_filename)
327
 
328
  # Read data from CSV file and write to the combined CSV file
329
+ with open(csv_file_path, 'r', encoding='utf-8') as csv_file:
330
  csv_reader = csv.DictReader(csv_file)
331
  for row in csv_reader:
332
  combined_csv_writer.writerow(row)