def default(self, obj):
if isinstance(obj, complex):
return [obj.real, obj.imag]
elif isinstance(obj, datetime):
return obj.isoformat()
elif isinstance(obj, type):
return obj.__module__ + '.' + obj.__name__
elif isinstance(obj, InterfaceClass):
return [x.__module__ + '.' + x.__name__ for x in obj.__iro__] # noqa
try:
iterable = iter(obj)
except TypeError:
pass
else:
return list(iterable)
if isinstance(obj, PermissionSetting):
return obj.get_name()
if callable(obj):
return obj.__module__ + '.' + obj.__name__
# Let the base class default method raise the TypeError
return json.JSONEncoder.default(self, obj)
# b/w compat import
评论列表
文章目录