def default(self, o):
if isinstance(o, uuid.UUID):
return o.hex
elif isinstance(o, datetime.datetime):
return o.strftime('%Y-%m-%dT%H:%M:%S.%fZ')
elif isinstance(o, datetime.date):
return o.isoformat()
elif isinstance(o, datetime.time):
if is_aware(o):
raise ValueError("JSON can't represent timezone-aware times.")
r = o.isoformat()
if o.microsecond:
r = r[:12]
return r
elif isinstance(o, (set, frozenset)):
return list(o)
elif isinstance(o, decimal.Decimal):
return str(o)
return super(BetterJSONEncoder, self).default(o)
评论列表
文章目录