如何修改此示例以将日期条目另外解析为元组,例如6,11,2007?

问题描述

>>> headers
['name','price','date','time','change','open','high','low','volume']

>>> row
['AA','39.48','6/11/2007','9:36am','-0.18','39.67','39.69','39.45','181800']

>>> types = [str,float,str,int]
>>> converted = [func(val) for func,val in zip(types,row)]
>>> record = dict(zip(headers,converted))
>>> record
{'volume': 181800,'name': 'AA','price': 39.48,'high': 39.69,'low': 39.45,'time': '9:36am','date': '6/11/2007','open': 39.67,'change': -0.18}

如何将日期字符串转换为日期元组

解决方法

你可以做

def date_to_tuple(datestring):
   return tuple(int(part) for part in datestring.split('/'))

,并在date_to_tuple列表中使用str代替types

但是您可能希望使用datetime.date而不是int的元组。例如,日期格式是MMDDYYYY还是DDMMYYYY?字符串或元组不清楚。另外,如果您想显示日期或在某个时候计算其他日期,那么处理起来会容易得多。

,
data = {'volume': 181800,'name': 'AA','price': 39.48,'high': 39.69,'low': 39.45,'time': '9:36am','date': '6/11/2007','open': 39.67,'change': -0.18}

data['date'] = tuple(data['date'].split('/'))