Introduction
JSON is an acronym that represents JavaScript Object Notation. It is a language format that is primarily used to send and receive data between systems and store data in certain cases as well. Python contains a separate package called JSON for the handling of JSON data. JSON data comprises data in terms of key-value pairs delimited by square brackets or curly braces similar to a dictionary which also consists of comma-separated key-value pairs.
json.dump is a function of Python which is used to convert a set of Python objects to a JSON string
Syntax
json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) |
Parameter | Functionality |
obj | Serialize obj as a JSON formatted stream to fp |
skipkeys | If skipkeys is True, dictionary keys which are not of basic type will be skipped |
ensure_ascii | If ensure_ascii is true (the default), the output is guaranteed to have all incoming non-ASCII characters escaped. If ensure_ascii is false, these characters will be output as-is. |
check_circular | If check_circular is false (default: True), then the circular reference check for container types will be skipped and a circular reference will result in a Recursion Erro (or worse). |
allow_nan | If allow_nan is false (default: True), then it will be a ValueError to serialize out-of-range float values (nan, inf, -inf) in strict compliance with the JSON specification. If allow_nan is true, their JavaScript equivalents (NaN, Infinity, -Infinity) will be used |
indent | If indent is a non-negative integer or string, then JSON array elements and object members will be pretty-printed with that indent level |
separators | If specified, separators should be an(item_separator,key_separator) |
default | If specified, the default should be a function that gets called for objects that can’t otherwise be serialized. It should return a JSON-encodable version of the object or raise a TypeError. If not specified, TypeError is raised. |
sort_keys | If sort_keys is true(default: False) then the output of dictionaries will be sorted by key. |
Examples
Example 1
A string is returned when a Python dictionary is passed to json.dumps() function
import json
# Creating a dictionary d ={1:'Board', 2:'Infinity',3:'Forever'}
json_str = json.dumps(d) print('Result of passing through json.dumps',json_str) print()
# Checking type of object
print(type(json_str)) |
Output:
Result of passing through json.dumps{"1" : "Board", "2" : "Infinity", "3" : "Forever"}
<class 'str'> |
Example 2
In this case, we set skipkeys as true, as a result, the key of list type will be skipped and not be included
import json
# Creating a dictionary d ={(45,67,86): 'Hello',1:'Board', 2:'Infinity',3:'Forever'}
json_str = json.dumps(d,skipkeys= True) print('Result of passing through json.dumps',json_str) print()
# Checking type of object print(type(json_str)) |
Output:
Result of passing through json.dumps{"1" : "Board", "2" : "Infinity", "3" : "Forever"}
<class 'str'> |
Example 3
In order to accept NaN values from the user, the allow_nan parameter of the function must be set to True, otherwise Python would throw an error
import json
# Creating a dictionary d ={(45,67,86):'Hello',1:'Board', 2:'Infinity',3:'Forever',4:float('nan')}
json_str = json.dumps(d,skipkeys= True,allow_nan = True) print('Result of passing through json.dumps',json_str) print()
# Checking type of object
print(type(json_str)) |
Output:
Result of passing through json.dumps{"1" : "Board", "2" : "Infinity", "3" : "NaN"}
<class 'str'> |
The JSON package in Python provides inbuilt methods to format the result by specifying the indent parameter. The indent parameter determines the space to be left from the margin. This space is left every time and the required data is printed. The syntax is given by:
json.dumps(y , indent = 5) |
Similarly, we can also define separators, to separate each object using a comma and space or colon and a space. By default, the value of the separator is (", ", ": "). The required syntax is given below
json.dumps(y, indent = 5, separators = ("." , " = ")) |
Ordering the Result
The result of json.dumps() can be reordered by setting the sort_keys parameter to True
json.dumps(y, indent= 5, sort_keys=True) |
Conclusion
Thus, at the end of this section, you will be able to understand what JSON is and understand the conversion of Python objects to JSON format. In addition, you will be familiarized with what each parameter means and what changing its value does.