說我有在以下五種方式之一格式化日期列表:更多Effecient方式格式化日期在Python中的MySQL
Date_Type_1 = 2001 Apr 15
Date_Type_2 = 2001 Apr
Date_Type_3 = 2000 Spring
Date_Type_4 = 2000 Nov-Dec
Date_Type_5 = 2001
所以,我的最新名單看起來是這樣。
Date_list = ["2001 Apr 15", "2004 May 15", "2011 Jan", "2011 Fall", "2000 Nov-Dec", "2012", "2000 Spring" ]
我現在想嘗試格式化這些日期,以便它們可以傳遞給MySQL數據庫。我知道如何使用大量的條件流程。這是我如何做到這一點的一個例子。我不會包含所有條件,因爲它會佔用太多空間。
for i in Date_list:
year = i[:4]
#This will be my conditional logic to define a month.
#This is only an example. Will not include all 12 months, 4 seasons, and various bi-months
if "Apr" in i and "Mar-Apr" not in i:
month = 4
if "Mar-Apr" in i:
month = 3
if "May" in i and "May-Jun" not in i:
month = 5
if "Apr-May" in i:
month = 4
if "Spring" in i:
month = 3
#This will be conditional logic to define the day.
#I would do this for each of the 31 days of the month.
if "15" in i and "2015" not in i:
day = 15
date_return = datetime.datetime(year,month,day)
date_format = date_return.date().isoformat
問題在於我正在做出一些假設。我可以將季節定義爲「春夏」,雙月(例如三月/四月)作爲特定月份返回。這個問題,至少在定義天數的時候是不會趕上日子的:
test_list = [2011 May, 2015 Apr 15]
for i in test_list:
if "15" in i and "2015" not in i:
day = 15
這不會趕上一天。我想知道是否有更有效的方法來做到這一點?目前的這種方法需要50個條件語句來定義日/月。
我不認爲你的代碼很慢,但看起來像你的高效率意味着更短的版本。 – YOU
這兩個都是很好的答案,非常優雅。謝謝,我希望我可以選擇兩者。 – Sean