Reading and writing JSON files with Python
JSON stands for JavaScript Object Notation. It is a hierarchical dictionary-like structure that stores key-value pairs separated by a comma; the key-value pairs are separated by a colon ':'
. JSON is platform-independent (like XML, which we will cover in the Reading and writing XML files with Python recipe) making sharing data between platforms very easy. You can read more about JSON at http://www.w3schools.com/json/.
Getting ready
To execute this recipe, you will need Python with the pandas
module installed. No other prerequisites are required.
How to do it…
The code to read a JSON file is as follows. Note that we assume the pandas
module is already imported and aliased as pd
(the read_json.py
file):
# name of the JSON file to read from r_filenameJSON = '../../Data/Chapter01/realEstate_trans.json' # read the data json_read = pd.read_json(r_filenameJSON) # print the first 10 records print(json_read.head(10))
How it works…
This code works in a similar way to the one introduced in the previous section. First, you need to specify the name of the JSON file—we store it in the r_filenameJSON
string. Next, use the read_json(...)
method of pandas, passing r_filenameJSON
as the only parameter.
The read data is stored in the json_read DataFrame
object. We then print the bottom 10 observations using the .tail(...)
method. To write a JSON file, you can use the .to_json()
method on DataFrame and write the returned data to a file in a similar manner as discussed in the Reading and writing CSV/TSV files with Python recipe.
There's more…
You can read and write JSON files using the json
module as well. To read data from a JSON file, you can refer to the following code (the read_json_alternative.py
file):
# read the data with open('../../Data/Chapter01/realEstate_trans.json', 'r') \ as json_file: json_read = json.loads(json_file.read())
This code reads the data from the realEstate_trans.json
file and stores it in a json_read
list. It uses the .read()
method on a file that reads the whole content of the specified file into memory. To store the data in a JSON file, you can use the following code:
# write back to the file with open('../../Data/Chapter01/realEstate_trans.json', 'w') \ as json_file: json_file.write(json.dumps(json_read))
See also
Check the pandas
documentation for read_json
at http://pandas.pydata.org/pandas-docs/stable/io.html#io-json-reader.