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.