次のような基本的な辞書があります:
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 配列など、警告なしに文字列化される可能性があるからです。