Movatterモバイル変換


[0]ホーム

URL:


Python Tutorial

Python json.JSONEncoder.iterencode() Method



The Pythonjson.JSONEncoder.iterencode() method is a method of thejson.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 Pythonjson.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()

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

import json# Create an instance of JSONEncoderencoder = json.JSONEncoder()# Sample dictionarydata = {"name": "Alice", "age": 25, "city": "London"}# Encode JSON in chunks using iterencode()json_iterator = encoder.iterencode(data)# Print each chunkprint("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, theiterencode() method helps by streaming the data in smaller chunks instead of holding it all in memory −

import json# Large dictionary with multiple key-value pairslarge_data = {"user" + str(i): i for i in range(1000)}# Create an instance of JSONEncoderencoder = json.JSONEncoder()# Stream JSON data using iterencode()json_iterator = encoder.iterencode(large_data)# Write chunks to a filewith open("large_output.json", "w") as file:   for chunk in json_iterator:      file.write(chunk)

Following is the content oflarge_output.json

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

Example: Custom JSON Encoding

We can subclassjson.JSONEncoder to customize the encoding process while using theiterencode() method −

import json# Custom JSON Encoderclass CustomEncoder(json.JSONEncoder):   def iterencode(self, obj):      for chunk in super().iterencode(obj):         yield chunk.upper()  # Convert chunks to uppercase# Sample dictionarydata = {"message": "hello world", "count": 5}# Create an encoder instanceencoder = CustomEncoder()# Stream JSON data with custom encodingjson_iterator = encoder.iterencode(data)# Print transformed chunksprint("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 theindent parameter inJSONEncoder to format JSON output while streaming it in chunks −

import json# Create an instance of JSONEncoder with indentationencoder = json.JSONEncoder(indent=4)# Sample dictionarydata = {"name": "Alice", "age": 25, "city": "London"}# Stream formatted JSON data in chunksjson_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 theiterencode() method to write data to a file in chunks −

import json# Large data examplelarge_data = {"item" + str(i): i for i in range(5000)}# Open a file for writingwith 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 ofstream_output.json

{"item0": 0, "item1": 1, "item2": 2, ..., "item4999": 4999}
python_json.htm
Print Page
Advertisements

[8]ページ先頭

©2009-2025 Movatter.jp