Most of the programs need data to work. This data is provided to the program while running or built into the program since the beginning. JSON is one of the ways to store this data in an organized and easy-to-handle manner. On the other hand, a python dictionary is one of the data types that can store a sequence of elements simultaneously in a well-formatted manner, just like JSON.
Therefore, in this article, let us understand some of the common methods to convert python Dict to JSON after a brief introduction of JSON and dictionary in python.
What is JSON in Python?
JSON(Javascript Object Notation) is a standard format to transfer the data as a text that can be sent over a network. JSON is a syntax for exchanging and storing data over the network. It uses lots of APIs and databases that are easy for humans and machines to read and understand. Python has an inbuilt package named 'json', which you can use to work with JSON data. To use this feature, you have to import the JSON package in python programming.
Python JSON stores the data in the form of key-value pairs inside curly brackets({}), and hence, it is pretty similar to a python dictionary. But here, the JSON key is a string object with double quotation mark compulsorily. However, the value corresponding to the key could be of any data type, i.e., string, integer, nested JSON, or any other sequence data type similar to an array.
For Example
import json # some JSON: a = '{ "name":"Jack", "age":21, "city":"California"}' # parse x: b = json.loads(a) print(b["city"])
Output
California
Remember that the JSON exists as a string but not a string from the data context.
What is Dictionary in Python?
Dictionary is one of the data types in python used to store the sequence of data in a single variable. Python dictionary helps store the data values like a map that is not supported by any other data type which holds only a single value as an element. Dictionary is an unordered and changeable collection of data elements stored in the form of key:value pairs inside the curly brackets({}). Here the colon(:) represents the key associated with its respective value.
Dictionary values can be of any data type and allow duplicate values, whereas dictionary keys are unique and immutable.
For Example
sample_dict = { "vegetable": "carrot", "fruit": "orange", "chocolate": "kitkat" } print(sample_dict)
Output
{'vegetable': 'carrot', 'fruit': 'orange', 'chocolate': 'kitkat'}
Remember that dictionary keys are case sensitive; therefore, the same name but different cases of the key will be treated distinctly.
Difference Between Dictionary and JSON
Dictionary |
JSON |
Keys can be any hashable object |
Keys can be only strings |
Keys cannot be repeated |
Keys can be ordered and repeated |
No such default value is set |
Keys has a default value of undefined |
Values can be accessed by subscript |
Values can be accessed by using “.”(dot) or “[]” |
Can use a single or double quote for the string object |
The double quotation is necessary for the string object |
Returns ‘dict’ object type |
Return ‘string’ object type |
Convert Dict to JSON in Python
Below are 5 common methods you can use to convert a dict to JSON in python:
1) Using dumps() function
Python possesses a default module, ‘json,’ with an in-built function named dumps() to convert the dictionary into a JSON object by importing the "json" module. "json" module makes it easy to parse the JSON strings which contain the JSON object. The below example displays the conversion of a python dictionary to a JSON object.
For Example
import json Fruit_Dict = { 'name': 'Apple', 'color': 'Red', 'quantity': 10, 'price': 60 } Fruit_Json = json.dumps(Fruit_Dict) print(Fruit_Json)
Output
{"name": "Apple", "color": "Red", "quantity": 10, "price": 60}
2) Converting nested dictionary to JSON
You can create a nested dictionary in the above example by declaring a new dictionary inside the default dictionary. To convert the nested dictionary into a json object, you can use the dumps function itself. Here, we have used indent=3, which refers to the space at the beginning of the code line:
For Example
import json dictionary = { 'fruit':{"Grapes": "10","color": "green"}, 'vegetable':{"chilli": "4","color": "red"}, } result = json.dumps(dictionary, indent = 3) print(result)
Output
{ "fruit": { "Grapes": "10", "color": "green" }, "vegetable": { "chilli": "4", "Grapes": "10", }, "vegetable": { "chilli": "4", "color": "pink" }
3) Convert dictionary to JSON quotes
You can declare a class and use it for the string representation to convert it into json object. Here, we have declared the class using the __str__(self) method, and the variable 'collect' is declared along with the variable 'result' to assign with the class and convert into the json object.
For Example
import json class fruits(dict): def __str__(self): return json.dumps(self) collect = [['apple','grapes']] result = fruits(collect) print(result)
Output
{"apple": "grapes"}
4) Convert dictionary to JSON array
You can declare an array to check the keys and values of the dictionary and convert it into json object. The for loop stores the value, and the dumps() method stores the dictionary. Check out the below example for a better understanding of the approach.
For Example
import json dictionary = {'Apple': 3, 'Grapes': 1} array = [ {'key' : i, 'value' : dictionary[i]} for i in dictionary] print(json.dumps(array))
Output
[{"key": "Apple", "value": 3}, {"key": "Grapes", "value": 1}]
5) Convert dictionary to JSON using sort_keys
Using this method, you can use the sort_keys attribute inside the dumps() method and set it to “true” to sort the dictionary and convert it into json object. If you set it to false, the dictionary won’t be sorted to find the json object in python.
For Example
import json dictionary ={"Name": "jack", "Branch": "IT", "CGPA": "8.6"} result = json.dumps(dictionary, indent = 3, sort_keys = True) print(result)
Output
{ "Branch": "IT", "CGPA": "8.6", "Name": "jack" }
Conclusion
As discussed above, JSON is a data format, and a dictionary in python is a data structure. If you wish to exchange data for different processes, you should use JSON format to serialize your python dictionary. Therefore, it is essential and recommended to learn all the above methods to convert python dictionaries to a json object and make your programming easy and efficient. To learn more about conversion in python, visit our article “3 Ways to Convert List to Tuple in Python”.