json.dump() in Python

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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

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

    chevron_right

    
    

    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:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

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

    chevron_right

    
    

    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:


    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

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

    chevron_right

    
    

    Output:

    python-json

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

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    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)

    chevron_right

    
    

    Output:

    python-json-2

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

    Example 1:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    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)

    chevron_right

    
    

    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 :

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    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)

    chevron_right

    
    

    Output:

    python-json



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.