Learn to write JSON data into an existing file using json.dump() method. Also, learn to apply sorting and formatting to the JSON written into the file.
For quick reference, below is the code which writes a JSON dictionary object to a “users.json” file.
import json
# Python object
py_dict = {
"id" : 1
}
# Write to File
with open('users.json', 'w') as json_file:
json.dump(py_dict, json_file, indent=4, sort_keys=True, separators=(',',':'))
1. json.dump() Method
The json.dump() serializes a Python object as a JSON formatted stream into a given file.
1.1. Method Parameters
dump(obj, fp, *, skipkeys=False, check_circular=True, allow_nan=True, indent=None, separators=None, default=None, sort_keys=False, **kw)
Except obj and fp, others are optional parameters.
obj: to be serialized as a JSON formatted stream.fp: The file object where Json data will be written.:skipkeys(default: False)dictkeys that are not of a basic type will be skipped. Otherwise it will raiseTypeError.check_circular(default: True) : circular reference check for container types. May result in result in anOverflowError.allow_nan (default: True): iffalse, it will be aValueErrorto serialize out of range float values. By deafult, JavaScript equivalents (NaN, Infinity, -Infinity) are used.indent: used for pretty-printing with given indent level.separators: separators used in the JSON.default: 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 aTypeError. If not specified,TypeErroris raised.sort_keys(default: False) : if true then the output of dictionaries will be sorted by key.
1.2. Conversion Rules
The dump() method uses below given conversion rules while converting a python object to JSON data.
| Python | JSON |
|---|---|
| dict | object |
| list, tuple | array |
| str | string |
| int, float | number |
| True | true |
| False | false |
| None | null |
2. Python Write JSON to File Examples
Example 1: Writing Python Dict to File
In given example, we are writing a python dict object to a file.
import json
# Python dict
py_dictionary = {
"Name": "Lokesh",
"Age": 39,
"Blog": "howtodoinjava"
}
# Write to File
with open('users.json', 'w') as json_file:
json.dump(py_dictionary, json_file)
Program output.
{"Name": "Lokesh", "Age": 39, "Blog": "howtodoinjava"}
Example 2: Write Pretty Printed JSON to File in Python
For pretty printing, use indent parameter of the method dump().
import json
# Python dict
py_dictionary = {
"Name": "Lokesh",
"Age": 39,
"Blog": "howtodoinjava"
}
# Write to File
with open('users.json', 'w') as json_file:
json.dump(py_dictionary, json_file, indent=4)
Program output.
{
"Name": "Lokesh",
"Age": 39,
"Blog": "howtodoinjava"
}
Happy Learning !!
Comments