1

私はフラスコ、sqlalchemy、およびマシュマロを使用して単純な REST API を作成しています。デフォルトでは、モデルは常にアルファベット順の属性を持つ json にシリアル化されます。

マシュマロでjson属性の順番を指定する方法はありますか?

例えば:

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)

戻り値

{
  "x": "MyX", 
  "y": "MyY"
}

しかし、私は期待します

{
  "y": "MyY", 
  "x": "MyX"
}

json は順序付けられていないセットであり、クライアントにとっては問題ではないことを認識しています。ただし、開発中およびきれいな印刷中のデバッグ目的のためのものです。したがって、フレームワークで属性の順序を定義できると期待しています。

4

1 に答える 1