我有一个Schema
,如下所示:
from marshmallow import Schema, fields
class ContactSchema(Schema):
# ... other fields ...
phone = fields.Str()
# ... other fields ...
但是,我处理的JSON数据却不同:
{
// ... other data ...
"information": {
"address": "foo",
"email": "bar@baz.com",
"phone": "+101234567890"
}
// .. other data ..
}
如您所见,phone
键位于information
下,这与ContactSchema
的形成方式不同。
我可以以及如何将Field
下的Schema
映射到目标JSON数据中的其他路径?
答案 0 :(得分:1)
您可以扩展架构并提供pre_load
方法:
class ContactSchema(Schema):
@preload
def extract_information(self, data):
# Please check for None's
data['phone'] = data['information'].pop('phone')
return data