Skip to content

How to Serialize Python Enums to JSON

Learn how to convert Python Enum values to JSON by inheriting from str or int for direct serialization with json.dumps().

This guide shows the simplest and most direct way to serialize a Python Enum to JSON.

Using str or int as Base Class

If the values in your enum are strings or integers, you can inherit from str or int:

from enum import Enum
import json

class Color(str, Enum): # Inherit from str, then Enum
   RED = 'stop'
   GREEN = 'go'
   YELLOW = 'get ready'
my_json = json.dumps(Color.RED)
print(my_json) # Output: "stop"

class Color(int, Enum):
   RED = 1
   GREEN = 2
   YELLOW = 3
my_json = json.dumps(Color.RED)
print(my_json) # Output: 1
  • The str class should come before the Enum class.
  • If the values are of type string, extend from str class.
  • If the values are of type integer, extend from int class.
Navigation