Open In App

json.dump() in Python

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

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.dump()

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.

Difference between dump() and dumps()

dump() dumps()
The dump() method is used when the Python objects have to be stored in a file. The dumps() is used when the objects are required to be in string format and is used for parsing, printing, etc, .
The dump() needs the json file name in which the output has to be stored as an argument. The dumps() does not require any such file name to be passed.
This method writes in the memory and then command for writing to disk is executed separately This method directly writes to the json file
Faster method 2 times slower

dump() and its arguments

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 dumped
    dict1 ={
        "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 stored
    out_file = open("myfile.json", "w")
      
    json.dump(dict1, out_file, indent = 6)
      
    out_file.close()

    
    

    Output:

    indent_quotes

  • 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 dumped
    dict1 ={
        ('addresss', 'street'):'Brigade road',
    }
       
    # the json file where the output must be stored
    out_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 :

    python json

  • 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 dumped
    d ={'lang':'??? ????'}
      
    with open('myfile.json', 'w', encoding ='utf8') as json_file:
        json.dump(d, json_file, ensure_ascii = False)

    
    

    Output:

    python-json

    Example 2: If it is set to True, then the content of the json file will be:




    import json
      
      
    # dictionary to be dumped
    d ={'lang':'??? ????'}
      
    with open('myfile.json', 'w', encoding ='utf8') as json_file:
        json.dump(d, json_file, ensure_ascii = True)

    
    

    Output:

    python-json-2

  • allow_nan: It helps to serialize the range of float values.

    Example 1:




    import json
      
      
    # dictionary to be dumped
    d ={
        'a':1,
        'x':float('nan')
    }
      
    with open('myfile.json', 'w', encoding ='utf8') as json_file:
        json.dump(d, json_file, allow_nan=False)

    
    

    Output:

    python-json

    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 dumped
    d ={
        '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



Last Updated : 23 Jan, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads