Lesson 9
No Object is an Island
Chapter 6: JSON files
JSON
You will likely see many Machine Learning datasets nowadays representing their data in JavaScript Object Notation (JSON) format. One example would be the COCO dataset which stores its annotations in JSON.
JSON is also used quite often for communication between a web server and your web app or browser. That tweet or Facebook Timeline post that you just received? Possibly sent using JSON in the background (I have not verified this though, so I might be completely wrong!)
If you look at an example JSON file (below), it may look awfully familiar. What does it remind you of? A dict
perhaps?
{
"name": "Smith",
"interests": ["maths", "programming"],
"age": 25,
"courses": [
{
"name": "Python",
"term": 1
},
{
"name": "Soft Eng",
"term": 2
}
]
}
The root JSON object is generally either a list (called array in JSON terms) or a dictionary (called object in JSON terms).
json module
In Python, the json
module can be used to load from and write to a JSON file. Note that JSON is not an exact one-to-one mapping to Python data types though. For example, true
is lowercase, strings can only use double quotes, dictionaries are considered objects
in JSON, None
is called null
, etc. The json
module will, however, automatically map between Python and JSON types in the background, so you do not have to worry too much about the details as long as you only use basic Python data types.