2016-05-03 4 views
1

У меня есть дата, которую я конвертировать в формат изопропилового используя:Преобразование даты в объект даты и времени питона

#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() 

Когда я пытаюсь добавить этот объект в БД я получаю SQLite DateTime type only accepts Python datetime and date objects as input. Как я могу преобразовать create_date_utcFormat в объект даты и времени?

ответ

0

У вас было время, но вы преобразовали его обратно в строку с .isoformat(). Не делай этого.

1

Я собираюсь дать вам более общий ответ на эти проблемы. Если у вас возникли проблемы соответствия типов, две вещи могут действительно помочь:

  1. Интерактивной отладка
  2. type()

Commit следующей памяти:

import pdb; pdb.set_trace()

Положив эту линию в любом месте вашего кода приостанавливает выполнение вашего скрипта, когда он достигнет этой точки, и опустит вас до (pdb), который похож на обычную оболочку python, за исключением того, что вы можете делать только одну строку за раз, и есть несколько доступных команд (c для продолжения, вероятно, наиболее важно знать).

Здесь вы можете использовать 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

Смежные вопросы