我正在以这种方式解析文件:
for d in csvReader:
print datetime.datetime.strptime(d["Date"]+"-"+d["Time"], "%d-%b-%Y-%H:%M:%S.%f").date()
date()返回:2000-01-08,这是正确的
time()返回:06:20:00,这也是正确的
我如何回复"日期+时间" 或"日期+小时+分钟"
修改
对不起,我应该更精确,这是我想要实现的目标:
lmb = lambda d: datetime.datetime.strptime(d["Date"]+"-"+d["Time"], "%d-%b-%Y-%H:%M:%S.%f").date()
daily_quotes = {}
for k, g in itertools.groupby(csvReader, key = lmb):
lowBids = []
highBids = []
openBids = []
closeBids = []
for i in g:
lowBids.append(float(i["Low Bid"]))
highBids.append(float(i["High Bid"]))
openBids.append(float(i["Open Bid"]))
closeBids.append(float(i["Close Bid"]))
dayMin = min(lowBids)
dayMax = max(highBids)
open = openBids[0]
close = closeBids[-1]
daily_quotes[k.strftime("%Y-%m-%d")] = [dayMin,dayMax,open,close]
正如您所看到的,现在我按天分组值,我想按小时分组(我需要日期+小时)或分钟(日期+小时+分钟)
提前感谢!
答案 0 :(得分:1)
请勿使用您从date
获取的datetime
对象的strptime
方法。相反,直接将strftime
应用于strptime
的返回,这样您就可以访问所有成员字段,包括年,月,日,小时,分钟,秒等...
d = {"Date": "01-Jan-2000", "Time": "01:02:03.456"}
dt = datetime.datetime.strptime(d["Date"]+"-"+d["Time"], "%d-%b-%Y-%H:%M:%S.%f")
print dt.strftime("%Y-%m-%d-%H-%M-%S")