Използвайте вградения jsonify
функция, тъй като вече е разширена за работа с дати
:
from Flask import jsonify
@app.route('/temp')
def temp():
# Load database results
# and then ...
return jsonify(data=cur.fetchall())
Данните ще бъдат върнати като обект с един ключ (data
), съдържащ масив от редове (които или ще бъдат представени като масиви или обекти в зависимост от това какво fetchall
връща редове като).
Ако трябва да сериализирате повече типове (както във вашия случай, вие връщате date
вместо datetime
екземпляри, ще трябва да замените json_encoder
на Flask
свойство с подклас JSONEncoder
който знае как да се справя с вашите типове:
class SpecializedJSONEncoder(JSONEncoder):
def default(o):
if isinstance(o, date):
return date.strftime("%Y-%m-%d")
else:
super(SpecializedJSONEncoder, self).default(o)
След това можете да го зададете на вашата Flask
пример:
app.json_encoder = SpecializedJSONEncoder
Вече ще можете да обработвате date
s, както и datetime
с.