How to deserialize the datetime in a json object in python?
datetime, json, python
Solution
from datetime import datetime
def load_with_datetime(pairs, format='%Y-%m-%d'):
"""Load with dates"""
d = {}
for k, v in pairs:
if isinstance(v, basestring):
try:
d[k] = datetime.strptime(v, format).date()
except ValueError:
d[k] = v
else:
d[k] = v
return d
dump = json.dumps(A, default = f)
json.loads(dump, object_pairs_hook=load_with_datetime)
# {u'date': datetime.date(2013, 1, 1), u'price': 100}
Problem
My original dictionary is ``` A = { 'date': datetime.date(2013, 1, 1), 'price': 100 } ``` Since `datetime.date` is not serializable, I add a default function to deal with that: ``` B = json.dumps(A, default=lambda obj:obj.isoformat() if hasattr(obj, 'isoformat') else obj) ``` My question is, how can I deserialize the `'date'` field while I use `json.loads` to convert it back to the original dictionary?