将自定义参数传递给棉花糖模式和预处理方法

2024-10-02 14:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我是marshamallow的新用户,尝试使用模式验证Python中灵活的JSON/dict记录。在实例化marshamallow模式时,有没有方法传递自定义参数?另外,如何将自定义参数传递给模式的预加载方法?我的要求如下


    from marshmallow import Schema, fields, post_load, EXCLUDE, validate, \
    validates, pre_load

    class UserSchema(Schema):
      name = fields.Str()
      joined_on = fields.AwareDateTime()

      @pre_load
      def sanitize(self, data, **kwargs):
          tzinfo = kwargs.get('tzinfo')
          data['joined_on'] = tzinfo.localize(data['joined_on'])
          return data

     schema = UserSchema()
     user = schema.load({"name": "Tim", "joined_on": datetime.datetime(2019, 10, 23)}, tzinfo=pytz.utc)


Tags: 方法namefieldsdataonschema模式load