Use el jsonify integrado de Flask
función, ya que es ya extendido para trabajar con fechas
:
from Flask import jsonify
@app.route('/temp')
def temp():
# Load database results
# and then ...
return jsonify(data=cur.fetchall())
Los datos se devolverán como un objeto con una sola clave (data ) que contiene una matriz de filas (que se representarán como matrices u objetos según lo que fetchall devuelve filas como).
Si necesita serializar más tipos (como en su caso, está recuperando date en lugar de datetime instancias, deberá anular el json_encoder de Flask
propiedad con una subclase de JSONEncoder
que sepa manejar tus tipos:
class SpecializedJSONEncoder(JSONEncoder):
def default(o):
if isinstance(o, date):
return date.strftime("%Y-%m-%d")
else:
super(SpecializedJSONEncoder, self).default(o)
Y luego puedes configurarlo en tu Flask instancia:
app.json_encoder = SpecializedJSONEncoder
Ahora podrá manejar date s así como datetime s.