GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Python Technologies
  • Databases
  • Computer Programming
  • Web Development
  • Java Technologies
  • Computer Science
  • Mobile Development
  • Big Data & Analytics
  • Microsoft Technologies
  • DevOps
  • Latest Technologies
  • Machine Learning
  • Digital Marketing
  • Software Quality

This view

  • Original page
  • New address

GeezerVison is showing www.tutorialspoint.com — Python json.JSONEncoder.iterencode() Method

Python Tutorial
  • Python - Home
  • Python - Overview
  • Python - History
  • Python - Features
  • Python vs C++
  • Python - Hello World Program
  • Python - Application Areas
  • Python - Interpreter
  • Python - Environment Setup
  • Python - Virtual Environment
  • Python - Basic Syntax
  • Python - Variables
  • Python - Private Variables
  • Python - Data Types
  • Python - Type Casting
  • Python - Unicode System
  • Python - Literals
  • Python - Operators
  • Python - Arithmetic Operators
  • Python - Comparison Operators
  • Python - Assignment Operators
  • Python - Logical Operators
  • Python - Bitwise Operators
  • Python - Membership Operators
  • Python - Identity Operators
  • Python - Walrus Operator
  • Python - Operator Precedence
  • Python - Comments
  • Python - User Input
  • Python - Numbers
  • Python - Booleans
  • Python - Floating Points
  • Python - Control Flow
  • Python - Decision Making
  • Python - If Statement
  • Python - If else
  • Python - Nested If
  • Python - Conditional User Inputs
  • Python - Match-Case Statement
  • Python - Loops
  • Python - for Loops
  • Python - for-else Loops
  • Python - While Loops
  • Python - break Statement
  • Python - continue Statement
  • Python - pass Statement
  • Python - Nested Loops
  • Python Functions & Modules
  • Python - Functions
  • Python - Default Arguments
  • Python - Keyword Arguments
  • Python - Keyword-Only Arguments
  • Python - Positional Arguments
  • Python - Positional-Only Arguments
  • Python - Arbitrary Arguments
  • Python - Variables Scope
  • Python - Function Annotations
  • Python - Modules
  • Python - Packing and Unpacking
  • Python - Built in Functions
  • Python Strings
  • Python - Strings
  • Python - Slicing Strings
  • Python - Modify Strings
  • Python - String Concatenation
  • Python - String Formatting
  • Python - Escape Characters
  • Python - String Methods
  • Python - String Exercises
  • Python Lists
  • Python - Lists
  • Python - Access List Items
  • Python - Change List Items
  • Python - Add List Items
  • Python - Remove List Items
  • Python - Loop Lists
  • Python - List Comprehension
  • Python - Sort Lists
  • Python - Copy Lists
  • Python - Join Lists
  • Python - List Methods
  • Python - List Exercises
  • Python Tuples
  • Python - Tuples
  • Python - Access Tuple Items
  • Python - Update Tuples
  • Python - Unpack Tuples
  • Python - Loop Tuples
  • Python - Join Tuples
  • Python - Tuple Methods
  • Python - Namedtuple
  • Python - Tuple Exercises
  • Python Sets
  • Python - Sets
  • Python - Access Set Items
  • Python - Add Set Items
  • Python - Remove Set Items
  • Python - Loop Sets
  • Python - Join Sets
  • Python - Copy Sets
  • Python - Set Operators
  • Python - Set Methods
  • Python - Set Exercises
  • Python Dictionaries
  • Python - Dictionaries
  • Python - Access Dictionary Items
  • Python - Change Dictionary Items
  • Python - Add Dictionary Items
  • Python - Remove Dictionary Items
  • Python - Dictionary View Objects
  • Python - Loop Dictionaries
  • Python - Copy Dictionaries
  • Python - Nested Dictionaries
  • Python - Dictionary Methods
  • Python - Dictionary Exercises
  • Python Arrays
  • Python - Arrays
  • Python - Access Array Items
  • Python - Add Array Items
  • Python - Remove Array Items
  • Python - Loop Arrays
  • Python - Copy Arrays
  • Python - Reverse Arrays
  • Python - Sort Arrays
  • Python - Join Arrays
  • Python - Array Methods
  • Python - Array Exercises
  • Python File Handling
  • Python - File Handling
  • Python - Write to File
  • Python - Read Files
  • Python - Renaming and Deleting Files
  • Python - Directories
  • Python - File Methods
  • Python - OS File/Directory Methods
  • Python - OS Path Methods
  • Object Oriented Programming
  • Python - OOPs Concepts
  • Python - Classes & Objects
  • Python - Class Attributes
  • Python - Class Methods
  • Python - Static Methods
  • Python - Constructors
  • Python - Access Modifiers
  • Python - Inheritance
  • Python - Multiple Inheritance
  • Python - Multilevel Inheritance
  • Python - Polymorphism
  • Python - Method Overriding
  • Python - Method Overloading
  • Python - Dynamic Binding
  • Python - Dynamic Typing
  • Python - Abstraction
  • Python - Encapsulation
  • Python - Interfaces
  • Python - Packages
  • Python - Inner Classes
  • Python - Anonymous Class and Objects
  • Python - Singleton Class
  • Python - Wrapper Classes
  • Python - Enums
  • Python - Reflection
  • Python - Data Classes
  • Python Errors & Exceptions
  • Python - Syntax Errors
  • Python - Exceptions
  • Python - try-except Block
  • Python - try-finally Block
  • Python - Raising Exceptions
  • Python - Exception Chaining
  • Python - Nested try Block
  • Python - User-defined Exception
  • Python - Logging
  • Python - Assertions
  • Python - Warnings
  • Python - Built-in Exceptions
  • Python - Debugger (PDB)
  • Python Multithreading
  • Python - Multithreading
  • Python - Thread Life Cycle
  • Python - Creating a Thread
  • Python - Starting a Thread
  • Python - Joining Threads
  • Python - Naming Thread
  • Python - Thread Scheduling
  • Python - Thread Pools
  • Python - Main Thread
  • Python - Thread Priority
  • Python - Daemon Threads
  • Python - Synchronizing Threads
  • Python Synchronization
  • Python - Inter-thread Communication
  • Python - Thread Deadlock
  • Python - Interrupting a Thread
  • Python Networking
  • Python - Networking
  • Python - Socket Programming
  • Python - URL Processing
  • Python - Generics
  • Python Libraries
  • NumPy Tutorial
  • Pandas Tutorial
  • SciPy Tutorial
  • Matplotlib Tutorial
  • Django Tutorial
  • OpenCV Tutorial
  • Python Miscellenous
  • Python - Date & Time
  • Python - Maths
  • Python - Iterators
  • Python - Generators
  • Python - Generator Expressions
  • Python - Lambda Expressions
  • Python - Closures
  • Python - Decorators
  • Python - Recursion
  • Python - Reg Expressions
  • Python - PIP
  • Python - Database Access
  • Python - Weak References
  • Python - Serialization
  • Python - Templating
  • Python - Output Formatting
  • Python - Performance Measurement
  • Python - Data Compression
  • Python - CGI Programming
  • Python - XML Processing
  • Python - GUI Programming
  • Python - Command-Line Arguments
  • Python - Docstrings
  • Python - JSON
  • Python - Sending Email
  • Python - Further Extensions
  • Python - Tools/Utilities
  • Python - Odds and Ends
  • Python - GUIs
  • Python Advanced Concepts
  • Python - Abstract Base Classes
  • Python - Custom Exceptions
  • Python - Higher Order Functions
  • Python - Object Internals
  • Python - Memory Management
  • Python - Metaclasses
  • Python - Metaprogramming with Metaclasses
  • Python - Mocking and Stubbing
  • Python - Monkey Patching
  • Python - Signal Handling
  • Python - Type Hints
  • Python - Automation Tutorial
  • Python - Humanize Package
  • Python - Context Managers
  • Python - Coroutines
  • Python - Descriptors
  • Python - Diagnosing and Fixing Memory Leaks
  • Python - Immutable Data Structures
  • Python - Domain Specific Language (DSL)
  • Python - Data Model
  • Python Useful Resources
  • Python - Questions & Answers
  • Python - Interview Questions & Answers
  • Python - Online Quiz
  • Python - Quick Guide
  • Python - Reference
  • Python - Cheatsheet
  • Python - Projects
  • Python - Useful Resources
  • Python - Discussion
  • Python Compiler
  • NumPy Compiler
  • Matplotlib Compiler
  • SciPy Compiler
Selected Reading
  • UPSC IAS Exams Notes
  • Developer's Best Practices
  • Questions and Answers
  • Online Resume Builder
  • HR Interview Questions
  • Computer Glossary
  • Who is Who

Python json.JSONEncoder.iterencode() Method



Previous
Quiz
Next

The Python json.JSONEncoder.iterencode() method is a method of the json.JSONEncoder class that encodes a Python object into a JSON-formatted string. It returns an iterator that yields the encoded string in chunks.

This method is useful when dealing with large datasets, as it avoids creating a single large JSON string in memory.

Syntax

Following is the syntax of the Python json.JSONEncoder.iterencode() method −

json.JSONEncoder().iterencode(obj)

Parameters

This method accepts the Python object as a parameter that needs to be serialized into a JSON-formatted string.

Return Value

This method returns an iterator that yields the JSON-formatted string in chunks instead of returning it as a whole.

Example: Basic Usage of iterencode()

The iterencode() method encodes a Python object and returns an iterator that produces JSON data in chunks −

import json

# Create an instance of JSONEncoder
encoder = json.JSONEncoder()

# Sample dictionary
data = {"name": "Alice", "age": 25, "city": "London"}

# Encode JSON in chunks using iterencode()
json_iterator = encoder.iterencode(data)

# Print each chunk
print("JSON Output:")
for chunk in json_iterator:
   print(chunk, end="")

Following is the output obtained −

JSON Output: {"name": "Alice", "age": 25, "city": "London"}

Example: Streaming Large JSON Data

When dealing with large JSON data, the iterencode() method helps by streaming the data in smaller chunks instead of holding it all in memory −

import json

# Large dictionary with multiple key-value pairs
large_data = {"user" + str(i): i for i in range(1000)}

# Create an instance of JSONEncoder
encoder = json.JSONEncoder()

# Stream JSON data using iterencode()
json_iterator = encoder.iterencode(large_data)

# Write chunks to a file
with open("large_output.json", "w") as file:
   for chunk in json_iterator:
      file.write(chunk)

Following is the content of large_output.json −

{"user0": 0, "user1": 1, "user2": 2, ..., "user999": 999}

Example: Custom JSON Encoding

We can subclass json.JSONEncoder to customize the encoding process while using the iterencode() method −

import json

# Custom JSON Encoder
class CustomEncoder(json.JSONEncoder):
   def iterencode(self, obj):
      for chunk in super().iterencode(obj):
         yield chunk.upper()  # Convert chunks to uppercase

# Sample dictionary
data = {"message": "hello world", "count": 5}

# Create an encoder instance
encoder = CustomEncoder()

# Stream JSON data with custom encoding
json_iterator = encoder.iterencode(data)

# Print transformed chunks
print("Custom JSON Output:")
for chunk in json_iterator:
   print(chunk, end="")

We get the output as shown below −

Custom JSON Output: {"MESSAGE": "HELLO WORLD", "COUNT": 5}

Example: Pretty-Printing JSON in Chunks

We can use the indent parameter in JSONEncoder to format JSON output while streaming it in chunks −

import json

# Create an instance of JSONEncoder with indentation
encoder = json.JSONEncoder(indent=4)

# Sample dictionary
data = {"name": "Alice", "age": 25, "city": "London"}

# Stream formatted JSON data in chunks
json_iterator = encoder.iterencode(data)

print("Pretty-Printed JSON Output:")
for chunk in json_iterator:
   print(chunk, end="")

The result produced is as shown below −

Pretty-Printed JSON Output:
{
    "name": "Alice",
    "age": 25,
    "city": "London"
}

Example: Writing Large JSON to File in Chunks

Instead of loading an entire JSON string into memory, we can use the iterencode() method to write data to a file in chunks −

import json

# Large data example
large_data = {"item" + str(i): i for i in range(5000)}

# Open a file for writing
with open("stream_output.json", "w") as file:
   # Create an instance of JSONEncoder
   encoder = json.JSONEncoder()
   
   # Stream JSON data in chunks and write to file
   for chunk in encoder.iterencode(large_data):
      file.write(chunk)

Following is the content of stream_output.json −

{"item0": 0, "item1": 1, "item2": 2, ..., "item4999": 4999}
python_json.htm
Tutorix - AI Tutor
Previous Quiz Next
Advertisements
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.