Überprüfen Sie zusätzliche Schlüssel in Marshmallow.schema.dump ()Python

Python-Programme
Anonymous
 Überprüfen Sie zusätzliche Schlüssel in Marshmallow.schema.dump ()

Post by Anonymous »

Ich möchte in der Lage sein, ein Python -Objekt zu nehmen (genauer gesagt ein DataClass ) und es mit einem Schema auf die Diktatdarstellung ablegen. Lassen Sie mich Ihnen ein Beispiel geben: < /p>

Code: Select all

from marshmallow import Schema, field
import dataclasses

@dataclasses.dataclass
class Foo:
x: int
y: int
z: int

class FooSchema(Schema):
x = field.Int()
y = field.Int()

FooSchema().dump(Foo(1,2,3))
Wie Sie sehen können, unterscheidet sich das Schema von der Definition von Foo . Ich möchte es irgendwie beim Dumping erkennen können - also würde ich ein ValidationError mit der Erklärung erhalten, dass ein zusätzliches Feld z gibt. Es muss nicht wirklich .dump () sein, ich habe mich .load () und .validate () angesehen, aber nur die ersteren scheint Objekte zu akzeptieren, nicht nur diktiert. < /p>
Gibt es eine Möglichkeit, dies in Marshmallow zu tun? Denn wenn ich diesen Dump mache, bekomme ich nur ein Wörterbuch: {"x": 1, "y": 2} ohne z natürlich, aber überhaupt keine Fehler. Und ich würde das gleiche Verhalten für einen Fall haben, wenn es keinen Schlüssel in einem ausgeglichenen Objekt gibt (wie z im Schema, aber nicht in Foo ). Dieser Wold dient mir im Grunde genommen als Vernunftprüfung der Änderungen an den Klassen selbst - vielleicht, wenn es in Marshmallow nicht möglich ist>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post