使用棉花糖对多种格式进行序列化/反序列化

时间:2019-02-28 23:59:13

标签: flask marshmallow

我有一个带有REST API的Flask Web服务,该服务具有希望用户以特定格式序列化的请求。此外,该Web服务还与希望用户以其他格式序列化的第三方服务进行交互。

棉花糖是否可以使用不同格式进行序列化/反序列化?如果没有,我可以得到有关替代实现的建议吗?谢谢。

下面的代码是基于Marshmallow documentation的简化示例。

import datetime as dt

class User(object):
    def __init__(self, name, email):
        self.name = name
        self.email = email
        self.created_at = dt.datetime.now()

    def __repr__(self):
        return '<User(name={self.name!r})>'.format(self=self)
from marshmallow import Schema, fields

class UserSchema(Schema):
    name = fields.Str()
    email = fields.Email()
    created_at = fields.DateTime()
api_user_data = {
  "name": "Alex Honnold",
  "email": "ah@example.com"
}
3rd_party_service_user_data = {
  "metadata": {
    "name": "Alex Honnold",
    "email": "ah@example.com"
  }
schema = UserSchema()

我想通过对两个schema.load()值调用类似user_data的方法来反序列化,然后调用schema.dump()来序列化为两个值中的一个。

0 个答案:

没有答案
相关问题