我原来的字典是
A = {
'date': datetime.date(2013, 1, 1),
'price': 100
}
由于 datetime.date
不可序列化,我添加了一个默认函数来处理它:
B = json.dumps(A, default=lambda obj:obj.isoformat() if hasattr(obj, 'isoformat') else obj)
我的问题是,当我使用 json.loads
将其转换回原始字典时,如何反序列化 'date'
字段?
最佳答案
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}
关于python - 如何在 python 中反序列化 json 对象中的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14995743/