首页 > 解决方案 > 我想传递一些额外的值 Pydantics 类,这些额外的值被`@validator`方法使用

问题描述

我想将一些额外的值(除了有效负载)传递给 Pydantics 类。

我有一个具有这两个属性的有效负载 -

payload ={
    "emailId":"some@email.com",
    "role": "some role"
}

为了验证这个有效载荷,我创建了一个这样的类 -

class Payloadvalidator(BaseModel):
   emailId: str
   role: str

我还在这些需要与发电机表交互的属性上执行一些复杂的验证。为了实现这一点,我还必须创建一个发电机客户端和表实例。AWS lambda 的最佳实践是不再创建 dynamo 实例。它也应该在 lambda 处理程序之外创建。所以我这样做了 -

dynamo_client = #client
table = #table

def lambda_handler(event, context):

   try:
      PayloadValidator(**payload)
   except Exception as e:
       return e.json

现在的问题是我不知道如何将这些客户端传递给验证器方法。我不想向PayloadValidator()如下所示添加任何其他属性,因为这不是一个好习惯。

class Payloadvalidator(BaseModel):
   emailId: str
   role: str
   table: str


dynamo_client = #client
table = #table

def lambda_handler(event, context):

   try:
      PayloadValidator(**payload, table=table)
   except Exception as e:
       return e.json

标签: pythonpydantic

解决方案


推荐阅读