Usa jsonify
integrato di Flask
funzione, poiché è già esteso per lavorare con le date
:
from Flask import jsonify
@app.route('/temp')
def temp():
# Load database results
# and then ...
return jsonify(data=cur.fetchall())
I dati verranno restituiti come un oggetto con un'unica chiave (date
) contenente un array di righe (che sarà rappresentato come array o oggetti a seconda di cosa fetchall
restituisce righe come).
Se devi serializzare più tipi (come nel tuo caso, stai tornando a date
anziché datetime
istanze, dovrai sovrascrivere json_encoder
proprietà con una sottoclasse di JSONEncoder
che sa come gestire i tuoi tipi:
class SpecializedJSONEncoder(JSONEncoder):
def default(o):
if isinstance(o, date):
return date.strftime("%Y-%m-%d")
else:
super(SpecializedJSONEncoder, self).default(o)
E poi puoi impostarlo sul tuo Flask
esempio:
app.json_encoder = SpecializedJSONEncoder
Ora sarai in grado di gestire date
s così come datetime
s.