json.dump() in Python

23 Jan, 2020
The full-form of JSON is JavaScript Object Notation. It means that a script (executable) file which is made of text in a programming language, is used to store and transfer the data. Python supports JSON through a built-in package called json. To use this feature, we import the json package in Python script. The text in JSON is done through quoted-string which contains the value in key-value mapping within { }. It is similar to the dictionary in Python.
json module in Python module provides a method called dump() which converts the Python objects into appropriate json objects. It is a slight variant of dumps() method.
Syntax: json.dump(d, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None)
Parameters:
indent : It improves the readability of the json file. The possible values that can be passed to this parameter are simply double quotes(""), any integer values. Simple double quotes makes every key-value pair appear in new line.Example:import json  # python object(dictionary) to be dumpeddict1 ={    "emp1": {        "name": "Lisa",        "designation": "programmer",        "age": "34",        "salary": "54000"    },    "emp2": {        "name": "Elis",        "designation": "Trainee",        "age": "24",        "salary": "40000"    },}  # the json file where the output must be storedout_file = open("myfile.json", "w")  json.dump(dict1, out_file, indent = 6)  out_file.close()Output:
Example:
import json  # python object(dictionary) to be dumpeddict1 ={    "emp1": {        "name": "Lisa",        "designation": "programmer",        "age": "34",        "salary": "54000"    },    "emp2": {        "name": "Elis",        "designation": "Trainee",        "age": "24",        "salary": "40000"    },}  # the json file where the output must be storedout_file = open("myfile.json", "w")  json.dump(dict1, out_file, indent = 6)  out_file.close()
Output:
skipkeys: If the key is not of standard allowed types like int, float, string, None or bool, error will be generated while dumping them. To avoid that if this parameter is set to true.Example:import json   # python object(dictionary) to be dumpeddict1 ={    ('addresss', 'street'):'Brigade road',}   # the json file where the output must be storedout_file = open("myfile.json", "w")   json.dump(dict1, out_file, indent = 6)   out_file.close()Output:If skipkeys is not set to true, then the following error will be generated :
Example:
import json   # python object(dictionary) to be dumpeddict1 ={    ('addresss', 'street'):'Brigade road',}   # the json file where the output must be storedout_file = open("myfile.json", "w")   json.dump(dict1, out_file, indent = 6)   out_file.close()
Output:
If skipkeys is not set to true, then the following error will be generated :
separator: This parameter takes up either one or two values. The first value specifies the symbol that separates one key-value pair from another. The next one specifies the symbol that separates the value from its key.
sort_keys: This parameter takes Boolean value. If it is set to True, the keys are set in ascending order else, they appear as in the Python object
ensure_ascii: This parameter also takes only Boolean values. If it is not set to true the non-ASCII characters are dumped into the output file as it is. By default the value is true.See the two codes below to get the difference.Example 1:# dictionary to be dumpedd ={'lang':'??? ????'}  with open('myfile.json', 'w', encoding ='utf8') as json_file:    json.dump(d, json_file, ensure_ascii = False)Output:Example 2: If it is set to True, then the content of the json file will be:import json    # dictionary to be dumpedd ={'lang':'??? ????'}  with open('myfile.json', 'w', encoding ='utf8') as json_file:    json.dump(d, json_file, ensure_ascii = True)Output:
See the two codes below to get the difference.
Example 1:
# dictionary to be dumpedd ={'lang':'??? ????'}  with open('myfile.json', 'w', encoding ='utf8') as json_file:    json.dump(d, json_file, ensure_ascii = False)
Output:
Example 2: If it is set to True, then the content of the json file will be:
import json    # dictionary to be dumpedd ={'lang':'??? ????'}  with open('myfile.json', 'w', encoding ='utf8') as json_file:    json.dump(d, json_file, ensure_ascii = True)
Output:
allow_nan: It helps to serialize the range of float values.Example 1:import json    # dictionary to be dumpedd ={    'a':1,    'x':float('nan')}  with open('myfile.json', 'w', encoding ='utf8') as json_file:    json.dump(d, json_file, allow_nan=False)Output:Example 2: If it is set to True, the error will not be generated. The content in the json file will be :import json    # dictionary to be dumpedd ={    'a':1,    'x':float('nan')}  with open('myfile.json', 'w', encoding ='utf8') as json_file:    json.dump(d, json_file, allow_nan=True)Output:
Example 1:
import json    # dictionary to be dumpedd ={    'a':1,    'x':float('nan')}  with open('myfile.json', 'w', encoding ='utf8') as json_file:    json.dump(d, json_file, allow_nan=False)
Output:
Example 2: If it is set to True, the error will not be generated. The content in the json file will be :
import json    # dictionary to be dumpedd ={    'a':1,    'x':float('nan')}  with open('myfile.json', 'w', encoding ='utf8') as json_file:    json.dump(d, json_file, allow_nan=True)
Output:
Python-json
Python
Technical Scripter
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Iterate over a list in Python
How to iterate through Excel rows in Python?
Enumerate() in Python
Rotate axis tick labels in Seaborn and Matplotlib
Python Dictionary
Deque in Python
Stack in Python
Queue in Python
Read a file line by line in Python
Defaultdict in Python