-
-
Save drmalex07/5149635e6ab807c8b21e to your computer and use it in GitHub Desktop.
import json | |
import datetime | |
'''Create an encoder subclassing JSON.encoder. | |
Make this encoder aware of our classes (e.g. datetime.datetime objects) | |
''' | |
class Encoder(json.JSONEncoder): | |
def default(self, obj): | |
if isinstance(obj, datetime): | |
return obj.isoformat() | |
else: | |
return json.JSONEncoder.default(self, obj) | |
o = { | |
'a': { | |
'boo': 'far', | |
'created': datetime.now(), | |
}, | |
'foo': 'Bar', | |
} | |
print json.dumps(o, cls=Encoder, indent=4) |
thanks for this
There are many modules for this task, maybe right way is select one.
@worldmind Thanks for the info about these modules!
maybe right way is select one.
I hear this every time. People are way too smart, they're know the right way, they telling you that you sholdn't code anything that was once done and published by another smart person. Even if it is a 5 string long configuration-like solution.
The price is another dependency and it's dependencies to maintain in your project and since you're using foreign lib to solve simple problem you just loose any control over implementation of the solution and it's also it's not bug-free, you are just getting another set of bugs instead of those in your own solution.
@Eduard-gan it's a big holywar ) IMHO we must make a new job, not repeat job that already done, of course I suppose that this job is good job.
Line 9 should be
if isinstance(obj, datetime.datetime):