Vous encodez deux fois :
json_docs = [json.dumps(doc, default=json_util.default) for doc in stories]
resp = jsonify(data=json_docs)
Maintenant, chaque entrée dans json_docs est une chaîne représentant un objet JSON.
Supprimez le json.dumps() appeler :
resp = jsonify(data=stories)
ou utilisez flask.json.dump() avec un Response() :
resp = Response(json.dumps({'data': stories}, default=json_util.default),
mimetype='application/json')
Cela vous permet d'utiliser votre json_util.default gestionnaire sur les objets curseurs.