Message98358
format() cannot handle datetime.DateTime objects, returns the format_spec instead, without applying formatting to it, perhaps default behaviour in case of unknown type. Different modifications, ie: using str.format() syntax produce same behaviour.
Sample code:
import datetime
#data
row = {0: 1, 'BeamId': 218, 2: 0.0, 3: 0.0, 4: datetime.datetime(2006, 7, 18, 0, 12), 5: datetime.datetime(2007, 2, 23, 18, 26, 55, 450000), 6: 32637.774406455803, 1: 218, 'DateAndTime': datetime.datetime(2007, 2, 23, 18, 26, 55, 450000), 'AvgFlexuralStrengthDown': 32637.774406455803, 'WarmUpTime': datetime.datetime(2006, 7, 18, 0, 12), 'AvgFlexuralStrengthUp': 15916.5463146028, 'IceSheetId': 1, 'Y': 0.0, 'X': 0.0, 7: 15916.5463146028}
titles = ['BeamId', 'DateAndTime', 'AvgFlexuralStrengthDown', 'WarmUpTime', 'AvgFlexuralStrengthUp', 'IceSheetId', 'Y', 'X']
#attempt to print datetime: ignores formatting, doesn't print datetime value, prints format_spec instead
for key in titles:
asLine = "{0:*<30}".format(row[key])
print(asLine),
print '\n'
#prints a repr of datetime
for key in titles:
asLine = "{0!r:*<30}".format(row[key])
print(asLine),
print '\n'
#prints datetime as string
for key in titles:
asLine = "{0!s:*<30}".format(row[key])
print(asLine),
print '\n' |
|
Date |
User |
Action |
Args |
2010-01-26 19:21:58 | JordanS | set | recipients:
+ JordanS |
2010-01-26 19:21:57 | JordanS | set | messageid: <1264533717.66.0.926018869233.issue7789@psf.upfronthosting.co.za> |
2010-01-26 19:21:56 | JordanS | link | issue7789 messages |
2010-01-26 19:21:55 | JordanS | create | |
|