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.