in src/loading_manifest/csv_to_json.py [0:0]
def replace_parameter_with_data(root_object, keys, parameter, data_row, col_index):
data = ''
if col_index is not None and col_index > -1:
data = data_row[col_index].strip()
if len(data) == 0:
# ignore it, will clean up later
return
parent_object, key = get_deepest_key_object(root_object, keys)
result = parent_object[key].replace(parameter, data)
# check if this needs be evaluated
pattern = '(int|float|bool|datetime_YYYY-MM-DD|datetime_MM/DD/YYYY)\(' + re.escape(parameter) + '\)'
if re.fullmatch(pattern, parent_object[key].strip()):
if result.startswith('bool'):
parent_object[key] = (data.lower() in ('true','yes','y','t','1'))
elif result.startswith('datetime_YYYY-MM-DD'):
input_date_time = datetime.datetime.strptime(data, '%Y-%m-%d')
parent_object[key] = input_date_time.strftime("%Y-%m-%dT%H:%M:%SZ")
elif result.startswith('datetime_MM/DD/YYYY'):
parent_object[key] = datetime.datetime.strptime(data, '%m/%d/%Y').isoformat()
elif result.startswith('int'):
parent_object[key] = int(data)
elif result.startswith('float'):
parent_object[key] = float(data)
else:
parent_object[key] = result