問題タブ [marshmallow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2797 参照

python - 複数の子を持つ子を持つ SQLAlchemy オブジェクトをシリアル化する

marshmallowでシリアライズしている SLQALchemy オブジェクトがあります。

オブジェクトには N 個のいいね! と N 個のコメントがあります。次のようになります。

シリアライザーは次のようになります。

私は次のようにビューでこれを実行しようとします:

そして、これをJSONに変換します:

それを実行しようとすると、エラーが発生しますlist indices must be integers, not str。に由来しmarshmallow/serializer.pyます。そこにいくつかのことを記録すると、マシュマロがtextのリストのプロパティにアクセスしようとしているように見えます<Comment>。それぞれに<Comment>個別にアクセスしてから、textプロパティにアクセスする必要があります。

シリアライザーに何か不足していますか? many=TrueParentSerializer で引数を送信すると、マシュマロに のリストを反復処理する必要があることがわかります<Parent><Comment>マシュマロに多くのまたはを期待する必要があることを伝える方法はあり<Like>ますか?

0 投票する
4 に答える
7337 参照

python - Marshmallow で MongoDB ObjectId をシリアル化するにはどうすればよいですか?

マシュマロとモンゴエンジンを使用して、Flask の上に API を構築しています。呼び出しを行い、ID をシリアル化する必要がある場合、次のエラーが表示されます。

ObjectId の処理方法をオーバーライドするために、他のライブラリでいくつかの方法を見ました。私はまだマシュマロでそれを理解していません.誰もそれを行う方法を知っていますか?

私のモデルは次のとおりです。

私のシリアライザ:

そしてビュー:

0 投票する
1 に答える
107 参照

python - ModelSerializer(model) と ModelSerializer().dump(model) のマシュマロの違い

オブジェクトを JSON にシリアル化するためにマシュマロを使用していますが、出力が次のようになることに気付きModelSerializer(model).dataましたModelSerializer().dump(model).data

それらの間に違いはありますか?

0 投票する
5 に答える
14295 参照

python - マシュマロからのデータで行を更新 (SQLAlchemy)

Flask、Flask-SQLAlchemy、Flask-Marshmallow + marshmallow-sqlalchemy を使用して、REST API PUT メソッドを実装しようとしています。SQLA とマシュマロを使用して更新を実装するチュートリアルは見つかりませんでした。

コードは次のとおりです。

0 投票する
1 に答える
2778 参照

python - ロード時に「None」を強制し、ダンプ時に「None」をスキップする

私はマシュマロ2.0.0rc2 を使用して、HTTP 要求の入力データを検証し、HTTP 応答で SQLAlchemy モデルを JSON にロードしています。そして、私は2つの問題に遭遇しました:

まず、HTTP PUT 要求で JSON からデータをロードしているときに、欠落しているすべてのフィールドを None として設定し、SQLAlchemy のデータを正しく上書きしたいと考えています。現在、次のコードを使用しています。

動作しますが、クラスmarshmallow.Fieldにアタッチされたインスタンスをいじっているので、バグがあると思います。Schemaそして、Schemaインスタンスを破棄した後、パッチを適用したすべてのフィールドは、デフォルトのフィールドではなく、新しい行方不明のままになります。

次に、SQLAlchemy から JSON にデータをダンプするときに、不足しているすべてのフィールドが None として解決され、JSON にデータが取り込まれ{"key": null, }ます。post_dumpこれは望ましくない動作であり、トリガーでそれらをクリーニングしています。

前と同じように動作していますが、BaseSchema継承されたすべてのクラスにこのロジックを渡すいくつかのクラス ウィッチの作成が含まれます。

しばらくドキュメントを検索しましたが、この動作を入れ替える正しい方法が見つかりませんでした。つまり、ダンプ時にフィールドをスキップしNone、ロード時にフィールドに入力します。私は何か不足していますか、それともマシュマロはそのような機能を提供していませんか?

0 投票する
1 に答える
11949 参照

python - トップレベルのマシュマロ スキーマ検証

Marshmallow#validationから、スキーマの特定のフィールドにバリデーターを登録できることがわかりました。バリデータが失敗した場合、次のエラーが発生します:

バリデーターに失敗したフィールドのエラー情報が含まれます。

私の質問: (個々のフィールド レベルではなく) スキーマ レベルで検証し、上記の方法でエラーを返すことは可能ですか?

MySchema().load()恣意的な例として、 n個の異なるキーを試行したことを検証したいとします。現在@pre_load、入力の構造とデータの形式が正しくないかどうかをチェックするメソッドがありますが、raise ValidationError('message')フィールド検証のように result.errors として返したいと思います。私のオプションは何ですか?

0 投票する
1 に答える
2428 参照

python - Pythonフラスコ/マシュマロでjson属性の順序を変更する

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

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

例えば:

戻り値

しかし、私は期待します

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

0 投票する
1 に答える
3585 参照

python - エラーを出さないマシュマロ

Marshmallow を使用して次のようなスキーマを作成した場合:

そして、私は次のようなことをします:

エラーが発生すると思いますが、次のようになります。

これまたは他のものがエラーとして表示されないのはなぜですか?