J'utilise flask, sqlalchemy et marshmallow pour écrire une API REST simple. Par défaut, le modèle est toujours sérialisé dans un json avec des attributs ordonnés alphabétiques.Modification de l'ordre des attributs json dans un flacon python/guimauve
Existe-t-il un moyen de spécifier l'ordre des attributs json avec marshmallow?
Par exemple:
class Sample(db.Model):
y = db.Column(db.String(256), primary_key=True)
x = db.Column(db.String(256))
def __init__(self, y, x):
self.x = x
self.y = y
class SampleSchema(Schema):
y = fields.Str()
x = fields.Str()
@app.route('/sample')
def get_sample():
dummy = Sample("MyY", "MyX")
logger.info(dummy)
schema = SampleSchema()
return jsonify(schema.dump(dummy).data)
retours
{
"x": "MyX",
"y": "MyY"
}
mais j'attendre
{
"y": "MyY",
"x": "MyX"
}
Je suis conscient que JSON est un ensemble non ordonné et il n'a pas d'importance pour le client. Cependant, c'est plus pour le but de débogage pendant le développement et la jolie impression. Donc je m'attendrais à un cadre pour me laisser définir l'ordre des attributs.