def encode(obj):
"""Handle packing for custom types."""
if isinstance(obj, decimal.Decimal):
return ['type', 'decimal', str(obj).split('.')]
elif isinstance(obj, datetime.datetime):
return ['type', 'datetime', utils.date_to_str(obj)]
elif isinstance(obj, datetime.date):
return ['type', 'date', obj.strftime('%Y-%m-%d')]
elif isinstance(obj, time.struct_time):
return ['type', 'time', time.strftime('%H:%M:%S', obj)]
elif hasattr(obj, '__serialize__'):
return obj.__serialize__()
raise TypeError('{} is not serializable'.format(repr(obj)))
评论列表
文章目录