Skip to main content

Command Palette

Search for a command to run...

Understanding Serialization and Deserialization

Python Examples of Serialization and Deserialization

Updated
3 min read
Understanding Serialization and Deserialization
J
• engineer • learning • 🐍⚙️☁️📄

When building modern applications, your data is constantly on the move: between the frontend and backend, to the database, across servers, or even from memory to disk.

But here’s the challenge: Computers can’t directly send complex data structures (like Python dictionaries) over a network. They must first convert them into a transmittable format.

What Is Serialization?

Serialization is the process of converting complex data structures such as objects, dictionaries, and arrays, into a format suitable for:

  • Saving to a file

  • Sending over a network

  • Storing in a database

The most common format is JSON (JavaScript Object Notation).

Think of it like this:

Object → JSON string

What Is Deserialization?

Deserialization is the reverse: turning serialized data back into a usable data structure.

JSON string → Object

Serialization and deserialization make it possible for systems to exchange, store, and reconstruct structured data in a reliable and consistent way.

Why JSON?

Here are some of the reasons why JSON has been widely used:

  • Lightweight and text-based

  • Human-readable

  • Language-independent

  • Supported natively in browsers and Python

That’s why nearly every modern API communicates in JSON.

Serialization and Deserialization in Python

Python includes a built-in module called json, which makes it simple to convert between dictionaries and JSON strings.

Example: Basic Serialization and Deserialization

import json

# A basic Python dictionary
student = {
    "name": "Alex",
    "age": 21,
    "favorite_subject": "Science",
    "is_honor_student": True
}

# --------------------
# SERIALIZATION
# --------------------
student_json = json.dumps(student, indent=4)

print("Serialized JSON:")
print(student_json)

# --------------------
# DESERIALIZATION
# --------------------
student_object = json.loads(student_json)

print("\nDeserialized Python Object:")
print(student_object)
print("\nStudent Name:", student_object["name"])

What’s happening here?

  • json.dumps() → converts a Python object into a JSON string

  • json.loads() → converts a JSON string back into a Python object

Quick mnemonic:

  • dumps()serialize

  • loads()deserialize

Example: Working With Files

We saw how we can use json.dumps() to return JSON as a string.

Now, we'll use json.dump() to write to a file.

import json

data = {
    "app_name": "StudyTracker", 
    "version": "1.0.0", 
    "active_users": 1250
}

# Serialize and save to file
with open("config.json", "w") as file:
    json.dump(data, file, indent=4)

# Read and deserialize
with open("config.json", "r") as file:
    loaded_data = json.load(file)
    print("Loaded from file:", loaded_data)

What’s happening here?

  • json.dump() → writes JSON to a file

  • json.load() → reads JSON from a file

Typical Use:

Function Input Output Typical use
json.dumps(obj) Python object Returns a JSON string APIs, variables
json.dump(obj, file) Python object Writes JSON to a file Saving data
json.loads(string) JSON string Python object Parse JSON from a string
json.load(file) File with JSON Python object Read JSON from a file

Remember

Think of serialization as packing your data into a box so it can travel safely. Deserialization is unpacking that box once it arrives, so it can be used again.

Serialization and deserialization are the foundation of:

  • Backend systems

  • Frontend data exchange

  • REST and GraphQL APIs

  • Microservices and distributed computing

Understanding these concepts isn’t just technical trivia, it’s how modern applications communicate effectively and reliably.