Python - Convert Dataclass to Dictionary


Convert Dataclass object to Dictionary in Python

In this tutorial, you will learn how to convert a dataclass instance object to a dictionary object in Python.

To convert a given dataclass object into a dictionary object, call dataclasses.asdict() function and pass the given dataclass object as argument. The function returns a dictionary representation of the given dataclass instance.

For example, if object is the dataclass instance, then the code snippet to convert this object into a dictionary is given below.

dataclasses.asdict(object)

Examples

1. Convert a simple dataclass instance to dictionary

In this example, we'll create a dataclass to represent a Person with name and age attributes.

We shall create an instance of this dataclass person_1, and get the dictionary representation of this instance using dataclasses.asdict() method.

Python Program

import dataclasses
from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

# Create an instance of dataclass Person
person_1 = Person("Ram", 21)

# Convert dataclass to dictionary
person_1_dict = dataclasses.asdict(person_1)

print(f"Dictionary : \n{person_1_dict}")

Output

Dictionary : 
{'name': 'Ram', 'age': 21}

2. Convert nested dataclass instance to Dictionary

In this example, we'll define two dataclasses: Person and Student. Student dataclass consists of the instance of Person dataclass as an attribute.

We shall create an instance of Student dataclass, student_1, and convert this instance into a dictionary object.

Python Program

import dataclasses
from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

@dataclass
class Student():
    student_id: str
    basic_details: Person

# Create an instance of dataclass Person
student_1 = Student("12345", Person("Ram", 21))

# Convert dataclass to dictionary
student_1_dict = dataclasses.asdict(student_1)

print(f"Dictionary :\n{student_1_dict}")

Output

Dictionary :
{'student_id': '12345', 'basic_details': {'name': 'Ram', 'age': 21}}

Summary

In this Python dataclasses tutorial, we learned how to convert a given dataclass instance into a dictionary object, with the help of example programs.