def for_json(obj):
if hasattr(obj, 'for_json'):
return obj.for_json()
elif isinstance(obj, datetime):
return obj.isoformat()
elif isinstance(obj, collections.Mapping):
# This includes all types in debian.deb822.
return {str(k): obj[k] for k in obj}
elif isinstance(obj, (collections.Iterator, tuple, set, frozenset)):
### TODO: Sort sets and frozensets?
return list(obj)
else:
try:
data = vars(obj).copy()
except TypeError:
return repr(obj)
else:
data["__class__"] = type(obj).__name__
return data
评论列表
文章目录