Skip to content

Instantly share code, notes, and snippets.

@maxkoryukov
Last active June 9, 2018 21:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maxkoryukov/fc792fe94480977a395d31ce63e285f3 to your computer and use it in GitHub Desktop.
Save maxkoryukov/fc792fe94480977a395d31ce63e285f3 to your computer and use it in GitHub Desktop.
Python __json__
# -*- coding: utf-8 -*-
import datetime
import simplejson
#json.dumps
__dumps = simplejson.dumps
def dumpsOverloaded(*args, **kwargs):
return __dumps(default=json_unknown, *args, **kwargs)
def json_unknown(o):
if isinstance(o, datetime.datetime):
s = o.isoformat()
else:
try:
s = o.__json__()
except KeyError:
raise TypeError(repr(o) + " is not JSON serializable")
return s
simplejson.dumps = dumpsOverloaded
json = simplejson
@maxkoryukov
Copy link
Author

@wallabra
Copy link

wallabra commented Jun 9, 2018

KeyError? Did you mean AttributeError?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment