Convert Python List to Json
Last Updated :
26 Feb, 2024
JSON (JavaScript Object Notation) is a lightweight data interchange format that is easy for humans to read and write, and easy for machines to parse and generate. In Python, the json
module provides a convenient way to work with JSON data. In this article, we’ll explore how to convert Python lists to JSON, along with some examples.
Convert List to JSON in Python
Below are some of the ways by which we can convert a list to JSON in Python:
- Using json.dumps() method
- Using json.dump() method
- Using json.JSONEncoder
Using json.dumps() Method
In this example, a Python list containing a mix of integers and strings (list_1
) is converted to a JSON-formatted string (json_str
) using json.dumps()
. The resulting JSON string maintains the original list’s structure, allowing for interoperability with other systems or storage.
Python3
import json
list_1 = [ 1 , 2 , 3 , "four" , "five" ]
print ( type (list_1))
print ( "Real List:" , list_1)
json_str = json.dumps(list_1)
print ( type (json_str))
print ( "Json List:" , json_str)
|
Output
<class 'list'>
Real List: [1, 2, 3, 'four', 'five']
<class 'str'>
Json List: [1, 2, 3, "four", "five"]
Using json.dump() Method
In this example, a list of lists (data
) is converted into a JSON-formatted file named “mydata.json” using the json.dump()
function. Subsequently, the file is downloaded from the Colab environment using files.download()
, providing a convenient way to retrieve and use the generated JSON file.
Python3
import json
from google.colab import files
data = [
[ "1" , "2" , "3" ],
[ "4" , "5" , "6" ],
[ "7" , "8" , "9" ]
]
with open ( "mydata.json" , "w" ) as final:
json.dump(data, final)
files.download( 'mydata.json' )
|
mydata.json
[["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]]
Using json.JSONEncoder
In the following example, the Python json module is used to customize the serialization of a list of Lists. Here, we are converting Python list of lists to json. The ‘json.JSONEncoder‘ class is subclassed, which is overriding the default method. It will convert the list of lists ‘data’ during the process of JSON encoding, that results in a formatted JSON string with indents for improved readability.
Python3
import json
class ListOfListsEncoder(json.JSONEncoder):
def default( self , obj):
if isinstance (obj, list ):
return obj
return json.JSONEncoder.default( self , obj)
data = [
[ "1" , "2" , "3" ],
[ "4" , "5" , "6" ],
[ "7" , "8" , "9" ]
]
print ( type (data))
json_output = json.dumps(data, cls = ListOfListsEncoder)
print (json_output)
print ( type (json_output))
|
Output
<class 'list'>
[["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]]
<class 'str'>
Share your thoughts in the comments
Please Login to comment...