diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-12-17 00:35:19 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-12-17 00:35:19 +0100 |
| commit | 4cf8581655c34698f8869bb364b6d436b881d17a (patch) | |
| tree | 449d6c5a8cd5a3f5bbd277e67f66a734ae0f51c8 /megapixels/app/server/json_encoder.py | |
| parent | 0bbaef7c889f2bf17cdf7e4584a6946085d0a7eb (diff) | |
returning results...!
Diffstat (limited to 'megapixels/app/server/json_encoder.py')
| -rw-r--r-- | megapixels/app/server/json_encoder.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/megapixels/app/server/json_encoder.py b/megapixels/app/server/json_encoder.py new file mode 100644 index 00000000..89af578a --- /dev/null +++ b/megapixels/app/server/json_encoder.py @@ -0,0 +1,17 @@ +from sqlalchemy.ext.declarative import DeclarativeMeta +from flask import json + +class AlchemyEncoder(json.JSONEncoder): + def default(self, o): + if isinstance(o.__class__, DeclarativeMeta): + data = {} + fields = o.__json__() if hasattr(o, '__json__') else dir(o) + for field in [f for f in fields if not f.startswith('_') and f not in ['metadata', 'query', 'query_class']]: + value = o.__getattribute__(field) + try: + json.dumps(value) + data[field] = value + except TypeError: + data[field] = None + return data + return json.JSONEncoder.default(self, o) |
