Python JSON

What is JSON?

JSON (JavaScript Object Notation) is a lightweight data-interchange format. Python has a built-in module called json to handle JSON data.

Import JSON Module

import json

1. Convert Python to JSON (json.dumps())

import json
data = {"name": "Alice", "age": 30, "is_member": True}
json_data = json.dumps(data)
print(json_data)

Output:

{"name": "Alice", "age": 30, "is_member": true}

Explanation:
dumps() converts a Python dictionary to a JSON string. Note that True becomes true in JSON.

2. Convert JSON to Python (json.loads())

import json
json_string = '{"name": "Alice", "age": 30, "is_member": true}'
python_data = json.loads(json_string)
print(python_data["name"])

Output:

Alice

Explanation:
loads() parses a JSON string and returns a Python dictionary.

3. Write JSON to a File (json.dump())

import json
data = {"id": 101, "status": "active"}
with open("data.json", "w") as file:
   json.dump(data, file)

Explanation:
dump() writes Python data to a .json file.

4. Read JSON from a File (json.load())

import json
with open("data.json", "r") as file:
   data = json.load(file)
print(data)

Output:

{'id': 101, 'status': 'active'}

Explanation:
load() reads a JSON file and converts it into Python objects.

5. Pretty Print JSON

import json
data = {"name": "Alice", "languages": ["Python", "JavaScript"]}
print(json.dumps(data, indent=4))

Output:

{
   "name": "Alice",
   "languages": [
       "Python",
       "JavaScript"
   ]
}

Explanation:
Use indent=4 to make JSON more readable.

6. JSON with Custom Sorting

import json
data = {"b": 2, "a": 1}
print(json.dumps(data, sort_keys=True))

Output:

{"a": 1, "b": 2}

Explanation:
sort_keys=True sorts keys alphabetically.

7. JSON Encoding Rules (Python → JSON)

PythonJSON
dictobject
list, tuplearray
strstring
int, floatnumber
Truetrue
Falsefalse
Nonenull

8. Custom Serialization with Classes

class User:
   def __init__(self, name, email):
       self.name = name
       self.email = email
def encode_user(obj):
   if isinstance(obj, User):
       return obj.__dict__
   raise TypeError("Object is not serializable")
user = User("Bob", "bob@example.com")
print(json.dumps(user, default=encode_user))

Output:

{"name": "Bob", "email": "bob@example.com"}

Explanation:
Use default to convert non-serializable objects to dictionaries.