Gebruik Flask's ingebouwde jsonify
functie, aangezien het al is uitgebreid om met datums te werken
:
from Flask import jsonify
@app.route('/temp')
def temp():
# Load database results
# and then ...
return jsonify(data=cur.fetchall())
De gegevens worden geretourneerd als een object met een enkele sleutel (data ) met een array van rijen (die ofwel worden weergegeven als arrays of objecten, afhankelijk van wat fetchall retourneert rijen als).
Als u meer typen moet serialiseren (zoals in uw geval, krijgt u date terug) in plaats van datetime instanties, moet u Flask's json_encoder overschrijven
eigenschap met een subklasse van JSONEncoder
die weet hoe hij met uw typen moet omgaan:
class SpecializedJSONEncoder(JSONEncoder):
def default(o):
if isinstance(o, date):
return date.strftime("%Y-%m-%d")
else:
super(SpecializedJSONEncoder, self).default(o)
En dan kun je het instellen op je Flask voorbeeld:
app.json_encoder = SpecializedJSONEncoder
U kunt nu date verwerken s evenals datetime v.