more Parameters fixup
This commit is contained in:
33
datetimejson.py
Normal file
33
datetimejson.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import datetime
|
||||
import json
|
||||
|
||||
|
||||
class DatetimeEncoder(json.JSONEncoder):
|
||||
def default(self, obj):
|
||||
if isinstance(obj, (datetime.date, datetime.datetime)):
|
||||
return obj.isoformat()
|
||||
|
||||
|
||||
def print_and_return(obj):
|
||||
for k, v in obj.items():
|
||||
if not isinstance(v, str):
|
||||
continue
|
||||
try:
|
||||
dt = datetime.datetime.fromisoformat(v)
|
||||
except Exception:
|
||||
pass
|
||||
try:
|
||||
dt = datetime.date.fromisoformat(v)
|
||||
except Exception:
|
||||
pass
|
||||
obj[k] = dt
|
||||
return obj
|
||||
|
||||
|
||||
d = dict(user=dict(joined=datetime.datetime.now()), other_user=datetime.date.today())
|
||||
|
||||
s = json.dumps(d, cls=DatetimeEncoder)
|
||||
print(s)
|
||||
print()
|
||||
|
||||
print(json.loads(s, object_hook=print_and_return))
|
||||
Reference in New Issue
Block a user