2 回答

TA貢獻1815條經驗 獲得超10個贊
第一個片段中的錯誤是因為你做了from datetime import datetime
而不是import datetime
之前做datetime.date
.
另請注意, to 的參數datetime.date
是 ordered (year, month, day)
。

TA貢獻1775條經驗 獲得超11個贊
這是一種解析日期并將它們放入列表的方法。
拆分中的正則表達式''\s|(?<=\d{4})(?=\d)'表示在四個連續數字(后跟一個數字)之后在空格或空格上拆分。這樣,年份將與月份的以下數字分開。這些是正則表達式中的后視和前瞻結構。
import re
from datetime import date
s = '6 6 19707 7 20013 15 19741 7 19772 17 1983'
dates = re.split(r'\s|(?<=\d{4})(?=\d)', s)
# get length less last 3
i = len(dates) - 3
j = 0
final_date = []
while j <= i:
m, d, yr = dates[j:j+3]
final_date.append(date(int(yr), int(m), int(d)))
j += 3
for d in final_date:
print(d)
輸出:
1970-06-06
2001-07-07
1974-03-15
1977-01-07
1983-02-17
添加回答
舉報