「datetime.datetime は JSON シリアル化できません」という問題をどうすれば解決できますか? 質問する

「datetime.datetime は JSON シリアル化できません」という問題をどうすれば解決できますか? 質問する

次のような基本的な辞書があります:

sample = {}
sample['title'] = "String"
sample['somedate'] = somedatetimehere

実行しようとするとjsonify(sample)次のようになります:

TypeError: datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) は JSON シリアル化できません

辞書サンプルで上記のエラーを克服するにはどうすればよいでしょうか?

注:関係ないかもしれませんが、辞書は からのレコードの取得から生成され、 をmongodb印刷するとstr(sample['somedate'])、出力は になります2012-08-08 21:46:24.862000

ベストアンサー1

日付やその他の情報をすべて取り込む、簡単で汚い JSON ダンプ:

json.dumps(my_dictionary, indent=4, sort_keys=True, default=str)

defaultは、シリアル化できないオブジェクトに適用される関数です。
この場合は なのでstr、不明なものはすべて文字列に変換されます。これはシリアル化には最適ですが、逆シリアル化にはそれほど適していません (そのため、「クイック & ダーティ」と呼ばれます)。関数や numpy 配列など、警告なしに文字列化される可能性があるからです。

おすすめ記事