Ich raubend eine API, die so etwas wie zurückgibt:Deserialize verschachtelte Felder in Eibisch
{'name': 'foo', 'start': {'date': '2016-06-19', 'time': '18:00'}}
Und ich mag es desearialize mit Eibisch nur den Namen zu erhalten und das Startdatum, so dass das gewünschte Ergebnis wäre die folgenden:
{'name': 'foo', 'date': '2016-06-19'}
Aber ich habe keine Möglichkeit bekommen das Datum gefunden, das, was ich habe versucht:
from marshmallow import Schema, fields, pprint
event = {'name': 'foo', 'start': {'date': '2016-06-19', 'time': '18:00'}}
class EventSchema(Schema):
name = fields.Str()
date = fields.Str(load_from='start.date')
schema = EventSchema()
result = schema.load(event)
pprint(result.data)
Sie können die Geschichte auch kurz mit lambdas schneiden, http://marshmallow.readthedocs.io/en/latest/custom_fields.html#function-fields, was in etwa so: 'date = fields.Function (load_from = ' start ', load_only = True, deserialize = Lambda Start: start [' Datum ']) '. –