2016-05-03 411 views
1

我有我使用轉換成ISO格式的日期:轉換日期爲datetime對象蟒蛇

#createDate is fetched from a json output of an API 
createDate = device['createDate'] 

# Convert into iso format 
# Sample output value : 2014-11-13T16:23:19+00:00 
create_date_utcFormat = dateparser.parse(createDate).astimezone(tz.tzutc()).isoformat() 

當我嘗試添加該對象到DB我得到SQLite DateTime type only accepts Python datetime and date objects as input.我怎麼能轉換成create_date_utcFormat DateTime對象?

回答

0

您有一個日期時間,但您將其轉換回.isoformat()的字符串。不要這樣做。

1

我打算給你一個更通用的答案來解決這類問題。如果您有問題類型匹配,兩件事情真的可以幫助:

  1. 交互式調試
  2. type()

提交下列內存:

import pdb; pdb.set_trace()

把此行代碼中的任何位置都會在達到該點時暫停腳本的執行並將您放到(pdb)提示符,類似於常規的python shell,除了一次只能執行一行命令並且有幾個命令可用(繼續可能是最重要的知識)。

從這裏你可以使用type()來確定什麼類型的對象和變量,並希望發現丹尼爾在他的答案中說 - type(dateparser.parse(createDate).astimezone(tz.tzutc()))已經是一個datetime對象。

+0

好眼睛(因爲我已經與python日期對象摔跤了一分鐘),修好了! – Anna

+0

感謝您指出這一點,這確實非常有用。但我得到了'TypeError:datetime.datetime(2014,11,13,16,23,19,tzinfo = tzutc())不是JSON序列化'當我試圖存儲在json對象中。 – aaj