在Python中为不同的日期格式创建一个解析函数

时间:2015-07-04 14:47:02

标签: python if-statement lambda date-parsing

我想用lambda创建一个能够识别两种不同格式的解析函数

"2014-01-06 15:23:00"

"2014-01-06"

我们的想法是使用此函数创建一个pandas数据帧,但在某些值中缺少小时

这是我的第一个想法

parse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S') if x is True else pd.datetime.strptime(x, '%Y-%m-%d')

似乎x是True是不正确的

任何想法??

1 个答案:

答案 0 :(得分:2)

dateutil有一个处理多种格式的解析器:

>>> dateutil.parser.parse('2015-07-04')
datetime.datetime(2015, 7, 4, 0, 0)

>>> dateutil.parser.parse('2015-07-04 11:23:00')
datetime.datetime(2015, 7, 4, 11, 23)

>>> dateutil.parser.parse('2015-07-04T11:23:56')
datetime.datetime(2015, 7, 4, 11, 23, 56)

甚至像这样的非iso格式

>>> dateutil.parser.parse('5-6-15')
datetime.datetime(2015, 5, 6, 0, 0)