Pydantic model has a copy() method, used to get a copy of the model.
Below table summarizes the arguments to be passed to copy() method.
Argument |
Description |
include |
fields to include in the returned dictionary |
exclude |
fields to exclude from the returned dictionary |
update |
a dictionary of values to change when creating the copied model |
deep |
whether to make a deep copy of the new model; default False |
Example
emp1Copy1 = emp1.copy()
emp1Copy2 = emp1.copy(include = {'id', 'name'})
emp1Copy3 = emp1.copy(exclude = {'age'})
emp1Copy4 = emp1.copy(exclude = {'name'}, update = {'age' : 45})
copy_method_1.py
from pydantic import BaseModel, ValidationError
class Employee(BaseModel):
id: int
name: str
age: int
emp1 = Employee(id = 1, name = 'Krishna', age = 23)
emp1Copy1 = emp1.copy()
emp1Copy2 = emp1.copy(include = {'id', 'name'})
emp1Copy3 = emp1.copy(exclude = {'age'})
emp1Copy4 = emp1.copy(exclude = {'name'}, update = {'age' : 45})
print('emp1Copy1 -> ' + str(emp1Copy1))
print('emp1Copy2 -> ' + str(emp1Copy2))
print('emp1Copy3 -> ' + str(emp1Copy3))
print('emp1Copy4 -> ' + str(emp1Copy4))
Output
emp1Copy1 -> id=1 name='Krishna' age=23 emp1Copy2 -> id=1 name='Krishna' emp1Copy3 -> id=1 name='Krishna' emp1Copy4 -> id=1 age=45
copy() method return a shallow copy of the object by default, set the argument deep to true to get deep copy of the object.
No comments:
Post a Comment