Sep-06-2017, 08:19 PM
Thank You larz60 I will try your solution
In the mean time can someone explain to me why this might be happening?
First why does
Second why is the date 4/4/2017 12:57 in the proper format for the line
As you can see from the output I have been able to separate the header 'created' from the dates that follows by adding the \n to the word in the if compare statement. When I tried to strip off the \n and do the compare it did not work, why?
What is different about the dates 4/4/2017 12:57 and 10/20/2016 11:28 that allows the format.strptime to process the first one but complain that the second one is not in the corrrect format?
In the mean time can someone explain to me why this might be happening?
First why does
values.strip()not take off the /n but
cleanedData.append(datetime.strptime(re.sub(',+|\\r|\\n|','', values), '%d/%m/%Y %H:%M'))does?
Second why is the date 4/4/2017 12:57 in the proper format for the line
cleanedData.append(datetime.strptime(re.sub(',+|\\r|\\n|','', values), '%d/%m/%Y %H:%M'))but '10/20/2016 11:28' is not?
As you can see from the output I have been able to separate the header 'created' from the dates that follows by adding the \n to the word in the if compare statement. When I tried to strip off the \n and do the compare it did not work, why?
What is different about the dates 4/4/2017 12:57 and 10/20/2016 11:28 that allows the format.strptime to process the first one but complain that the second one is not in the corrrect format?
Output:Before the if else block created
in the if statement created
Before the if else block 4/4/2017 12:57
in the else statement 4/4/2017 12:57
Added to dictionary key [' c r e a t e d ', datetime.datetime(2017, 4, 4, 12, 57)]
Before the if else block 10/20/2016 11:28
in the else statement 10/20/2016 11:28
Traceback (most recent call last):
File "date_filter_error_report.py", line 211, in <module>
parsedData = cleanTheData(parsedData)
File "date_filter_error_report.py", line 113, in cleanTheData
cleanedData.append(datetime.strptime(re.sub(',+|\\r|\\n|','', values), '%d/%m/%Y %H:%M'))
File "C:\Python36\lib\_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "C:\Python36\lib\_strptime.py", line 362, in _strptime
(data_string, format))
ValueError: time data '10/20/2016 11:28' does not match format '%d/%m/%Y %H:%M'
def cleanTheData(ds): # removes excess characters from sys_created_on values cleanedData = list() # clears list for values in ds['sys_created_on']: print('Before the if else block', values) if values=='created\n': cleanedData.append(re.sub(',+|\\r|\\n|', ' ', values)) print('in the if statement', values) else: print('in the else statement', values) cleanedData.append(datetime.strptime(re.sub(',+|\\r|\\n|','', values), '%d/%m/%Y %H:%M')) ds['sys_created_on'] = cleanedData print('Added to dictionary key', ds['sys_created_on']) return ds