DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
シリアル化する前に、次のことを行ってください。
time = datetime.strftime(time, DATETIME_FORMAT)
シリアル化を解除した後、次の手順を実行します。
time = datetime.strptime(time, DATETIME_FORMAT)
例:
>>> from datetime import datetime
>>> DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
>>> time = datetime.now()
>>> time
datetime.datetime(2011, 5, 5, 3, 1, 45, 646302)
>>> time = time.strftime(DATETIME_FORMAT)
>>> time
'2011-05-05 03:01:45'
>>> import json
>>> time = json.loads(json.dumps(time))
>>> time
'2011-05-05 03:01:45'
>>> time = datetime.strptime(time, DATETIME_FORMAT)
>>> time
datetime.datetime(2011, 5, 5, 3, 1, 45)
これがややエレガントでない場合は、カスタムのjsonエンコーダー/デコーダーを検討してください。私は個人的にデフォルトのjsonパッケージのものを試しましたが、不可解なエラーメッセージで髪の毛を抜くことをあきらめました。この方法をとる場合は、サードパーティのjsonパッケージをお勧めします。