Thanks to visit codestin.com
Credit goes to www.tutorialspoint.com

Python json.dumps() Function



The Python json.dumps() function is used to serialize a Python object into a JSON-formatted string.

This function is useful when working with APIs, logging structured data, or converting Python objects to JSON strings for storage or transmission.

Syntax

Following is the syntax of the Python json.dumps() function −

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, indent=None, separators=None, default=None, sort_keys=False)

Parameters

This function accepts the following parameters −

  • obj: The Python object to be serialized into JSON. This can be a dictionary, list, string, etc.
  • skipkeys (optional): If True, it allows non-string keys in dictionaries. Default is False, meaning it will raise a TypeError for non-string dictionary keys.
  • ensure_ascii (optional): If True (default), all non-ASCII characters are escaped in the output.
  • check_circular (optional): If True (default), it checks for circular references in the object. Set to False to skip the check.
  • allow_nan (optional): If True (default), NaN and Infinity values will be serialized as 'NaN' and 'Infinity'.
  • indent (optional): If specified, it pretty-prints the JSON data with the specified number of spaces for indentation. Default is None (no indentation).
  • separators (optional): A tuple (item_separator, key_separator) that controls the formatting of the output. Defaults to (', ', ': ').
  • default (optional): A function that is called for objects that are not serializable by default. It can be used to serialize custom objects.
  • sort_keys (optional): If True, the output JSON will have the dictionary keys sorted. Default is False.

Return Value

This function returns a JSON-formatted string representing the serialized Python object.

Example: Basic json.dumps() Usage

In this example, we use the json.dumps() function to convert a Python dictionary into a JSON string −

import json

# Python dictionary
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# Convert dictionary to JSON string
json_string = json.dumps(data)

print("JSON String:", json_string)

Following is the output obtained −

JSON String: {"name": "John", "age": 30, "city": "New York"}

Example: Pretty-Printing JSON

The indent parameter allows us to format JSON output in a more readable way by adding indentation −

import json

# Python dictionary
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# Convert dictionary to JSON string with indentation
json_string = json.dumps(data, indent=4)

print("Pretty JSON String:")
print(json_string)

Following is the formatted JSON output −

Pretty JSON String:
{
    "name": "John",
    "age": 30,
    "city": "New York"
}

Example: Sorting Keys in JSON

In this example, we use the sort_keys parameter to sort dictionary keys before converting them to a JSON string −

import json

# Python dictionary
data = {
    "city": "New York",
    "name": "John",
    "age": 30
}

# Convert dictionary to JSON string with sorted keys
json_string = json.dumps(data, indent=4, sort_keys=True)

print("Sorted JSON String:")
print(json_string)

Following is the sorted JSON output −

Sorted JSON String:
{
    "age": 30,
    "city": "New York",
    "name": "John"
}

Example: Handling Non-Serializable Objects

Some objects like datetime are not JSON serializable by default. We can use the default parameter to define custom serialization −

import json
import datetime

# Python dictionary with a datetime object
data = {
    "name": "John",
    "timestamp": datetime.datetime.now()
}

# Custom function to handle datetime serialization
def json_datetime_converter(obj):
   if isinstance(obj, datetime.datetime):
      return obj.isoformat()  # Convert datetime to string
   raise TypeError("Type not serializable")

# Convert dictionary to JSON string with custom function
json_string = json.dumps(data, default=json_datetime_converter, indent=4)

print("JSON with datetime:")
print(json_string)

The result produced is as shown below −

JSON with datetime:
{
    "name": "John",
    "timestamp": "2025-02-19T12:01:58.127889"
}

Example: Using Custom Separators

The separators parameter allows us to customize how items are separated in the JSON string −

import json

# Python dictionary
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# Convert dictionary to JSON string with custom separators
json_string = json.dumps(data, separators=(",", ":"))

print("Custom Separator JSON String:", json_string)

Following is the output obtained −

Custom Separator JSON String: {"name":"John","age":30,"city":"New York"}
python_json.htm
Advertisements