from collections import defaultdict
from flask import Flask, render_template, jsonify, request
import flask.json
-from flask_sqlalchemy import SQLAlchemy
+from flask_sqlalchemy import SQLAlchemy, inspect
app_path = os.path.dirname(os.path.realpath(__file__))
class Sensors(db.Model):
__tablename__ = 'sensors'
+ # https://stackoverflow.com/a/37350445
+ def to_dict(self):
+ return {c.key: getattr(self, c.key)
+ for c in inspect(self).mapper.column_attrs}
def select_sensordata(initial_where):
query = Sensors.query.filter(initial_where)
c3result[row.sensor_id].append(row.value)
dt = row.timestamp.strftime('%Y-%m-%d %H:%M:%S')
c3result[row.sensor_id + '_x'].append(dt)
- result = c3result
- return result
+ return c3result
+ else:
+ return [row.to_dict() for row in result]
def currentairtemperature(apikey, cityid):
format=<default|c3>, optional. return result as returned by sqlalchemy (default) or formatted for c3.js
"""
result = select_sensordata(Sensors.sensor_id == sensor_id)
- return jsonify([row._asdict() for row in result])
+ return jsonify(result)
@app.route('/api/<version>/sensor/type/<sensor_type>')