Tuesday 7 September 2021

Pydantic: dict(): Convert model to a dictionary

‘model.dict()’ function return a dictionary of model fields.

 

Example

emp1 = Employee(id = 1, name = 'Krishna', age = 23)
empDict = emp1.dict()

 

get_dict_of_model_fields.py

from pydantic import BaseModel, ValidationError

class Employee(BaseModel):
    id: int
    name: str
    age: int

emp1 = Employee(id = 1, name = 'Krishna', age = 23)
empDict = emp1.dict()

print('empDict ' + str(empDict))
print('dict(emp1) ' + str(dict(emp1)))

Output

empDict {'id': 1, 'name': 'Krishna', 'age': 23}
dict(emp1) {'id': 1, 'name': 'Krishna', 'age': 23}


‘dict’ method can take arguments include, exclude, by_alias, exclude_unset, exclude_defaults and exclude_none. Below table summarizes each argument in detail.

 

Argument

Description

include

Specifies fields to include in the returned dictionary

exclude

Specifies fields to exclude from the returned dictionary

by_alias

Specify field aliases should be used as keys in the returned dictionary

exclude_unset

Specifies whether fields which were not explicitly set when creating the model should be excluded from the returned dictionary. default False.

exclude_defaults

Specifies whether fields which are equal to their default values (whether set or otherwise) should be excluded from the returned dictionary. default False

exclude_none

Specifies whether fields which are equal to None should be excluded from the returned dictionary. Default to False.

 

Example

empDict1 = emp1.dict()
empDict2 = emp1.dict(include= {'id', 'name'})
empDict3 = emp1.dict(exclude= {'age'})


dict_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)
empDict1 = emp1.dict()
empDict2 = emp1.dict(include= {'id', 'name'})
empDict3 = emp1.dict(exclude= {'age'})

print('empDict1 -> ' + str(empDict1))
print('empDict2 -> ' + str(empDict2))
print('empDict3 -> ' + str(empDict3))


Output

empDict1 -> {'id': 1, 'name': 'Krishna', 'age': 23}
empDict2 -> {'id': 1, 'name': 'Krishna'}
empDict3 -> {'id': 1, 'name': 'Krishna'}


Using dict() method

You can convert a pydantic model to dictionary using dict method.

 

Example

emp1 = Employee(id = 1, name = 'Krishna', age = 23)

emp1Dict = dict(emp1)

 

dict_method_2.py

from pydantic import BaseModel, ValidationError

class Employee(BaseModel):
    id: int
    name: str
    age: int

emp1 = Employee(id = 1, name = 'Krishna', age = 23)

emp1Dict = dict(emp1)

print('emp1 -> ' + str(emp1))
print('emp1Dict -> ' + str(emp1Dict))


Output

emp1 -> id=1 name='Krishna' age=23
emp1Dict -> {'id': 1, 'name': 'Krishna', 'age': 23}




 

Previous                                                    Next                                                    Home

1 comment: