Utilisez le jsonify
intégré de Flask
fonction, car elle est déjà étendue pour fonctionner avec des dates
:
from Flask import jsonify
@app.route('/temp')
def temp():
# Load database results
# and then ...
return jsonify(data=cur.fetchall())
Les données seront renvoyées sous la forme d'un objet avec une seule clé (data
) contenant un tableau de lignes (qui seront soit représentés comme des tableaux ou des objets selon ce que fetchall
renvoie les lignes comme).
Si vous avez besoin de sérialiser plus de types (comme dans votre cas, vous obtenez en retour date
plutôt que datetime
instances, vous devrez remplacer le json_encoder
de Flask
propriété avec une sous-classe de JSONEncoder
qui sait gérer vos types :
class SpecializedJSONEncoder(JSONEncoder):
def default(o):
if isinstance(o, date):
return date.strftime("%Y-%m-%d")
else:
super(SpecializedJSONEncoder, self).default(o)
Et ensuite vous pouvez le mettre sur votre Flask
instance :
app.json_encoder = SpecializedJSONEncoder
Vous allez maintenant pouvoir gérer date
s ainsi que datetime
s.