Use o
jsonify integrado do Flask
função, pois já está estendida para trabalhar com datas
:from Flask import jsonify
@app.route('/temp')
def temp():
# Load database results
# and then ...
return jsonify(data=cur.fetchall())
Os dados serão retornados como um objeto com uma única chave (
data ) contendo uma matriz de linhas (que serão representadas como matrizes ou objetos dependendo do que fetchall retorna linhas como). Se você precisar serializar mais tipos (como no seu caso, você está retornando
date em vez de datetime instâncias, você precisará substituir o json_encoder do Flask
propriedade com uma subclasse de JSONEncoder
que sabe como lidar com seus tipos:class SpecializedJSONEncoder(JSONEncoder):
def default(o):
if isinstance(o, date):
return date.strftime("%Y-%m-%d")
else:
super(SpecializedJSONEncoder, self).default(o)
E então você pode configurá-lo em seu
Flask instância:app.json_encoder = SpecializedJSONEncoder
Agora você poderá lidar com
date s, bem como datetime s.