In this tutorial, you’ll learn the basics of JSON: what it is, where it’s most commonly used, syntax.
You will also learn how to convert a string to his JSON in Python.
Let’s start!
What is JSON?
JSON stands for JavaScript Object Notation.
It is a data format used to store and transmit information for web applications. JSON was inspired by the JavaScript programming language, but it’s not tied to just one language.
Most modern programming languages have libraries for parsing and generating JSON data.
Where is JSON used?
JSON is mainly used to send and receive data between server and client (client is her website or web application).
This is a much more robust format to use in the request-response cycle that web applications use when connecting over a network. This compares to XML, which was the format of choice many years ago and is complex and not compact.
Basic JSON syntax
In JSON, data is written in key-value pairs like this:
"first_name": "Katie"
Enclose the data in double quotes and separate key-value pairs with colons.
There can be multiple key-value pairs, each separated by a comma.
"first_name": "Katie", "last_name": "Rodgers"
The example above showed an object that was a collection of multiple key-value pairs.
Objects are enclosed in curly braces:
{
"first_name": "Katie",
"last_name": "Rodgers"
}
You can also use JSON to create arrays (ordered lists of values). In this case, the array is enclosed in square brackets.
[
{
"first_name": "Katie",
"last_name": "Rodgers"
},
{
"first_name": "Naomi",
"last_name": "Green"
},
]
// or:
{
"employee": [
{
"first_name": "Katie",
"last_name": "Rodgers"
},
{
"first_name": "Naomi",
"last_name": "Green"
},
]
}
//this created an 'employee' object that has 2 records.
// It defines the first name and last name of an employee
How to use Python to manipulate JSON data
Paste Python’s JSON module
To use JSON in Python, you first need to include the above JSON module in your Python file. It’s built into Python and part of the standard library.
Let’s say you have a file called demo.py. Add the following line above:
import json
Implement the json.loads() function.
If your program has JSON string data in the following format:
#include json library
import json
#json string data
employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}'
#check data type with type() method
print(type(employee_string))
#output
#<class 'str'>
Using the json.loads() function in Python, you can convert it to JSON.
A valid string can be passed to the json.loads() function, which will then translate it into a Python dictionary.
Deserialization is the action of transforming a string into an object.
#include json library
import json
#json string data
employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}'
#check data type with type() method
print(type(employee_string))
#convert string to object
json_object = json.loads(employee_string)
#check new data type
print(type(json_object))
#output
#<class 'dict'>
When it happens, you can access each individual object as you would with a Python dictionary:
#include json library
import json
#json string data
employee_string = '{"first_name": "Michael", "last_name": "Rodgers", "department": "Marketing"}'
#check data type with type() method
print(type(employee_string))
#convert string to object
json_object = json.loads(employee_string)
#check new data type
print(type(json_object))
#output
#<class 'dict'>
#access first_name in dictionary
print(json_object["first_name"])
#output
#Michael
Here’s another illustration:
JSON string data here:
import json
#json string
employees_string = '''
{
"employees": [
{
"first_name": "Michael",
"last_name": "Rodgers",
"department": "Marketing"
},
{
"first_name": "Michelle",
"last_name": "Williams",
"department": "Engineering"
}
]
}
'''
#check data type using the type() method
print(type(employees_string))
#output
#<class 'str'>
You can turn a string into an object by using the json.loads() function:
import json
emoloyees_string = '''
{
"employees" : [
{
"first_name": "Michael",
"last_name": "Rodgers",
"department": "Marketing"
},
{
"first_name": "Michelle",
"last_name": "Williams",
"department": "Engineering"
}
]
}
'''
data = json.loads(employees_string)
print(type(data))
#output
#<class 'dict'>
Access the data:
import json
employees_string = '''
{
"employees" : [
{
"first_name": "Michael",
"last_name": "Rodgers",
"department": "Marketing"
},
{
"first_name": "Michelle",
"last_name": "Williams",
"department": "Engineering"
}
]
}
'''
data = json.loads(employees_string)
print(type(data))
#output
#<class 'dict'>
#access first_name
for employee in data["employees"]:
print(employee["first_name"])
#output
#Michael
#Michelle
Conclusion
You now understand the fundamentals of using JSON in Python.
Very good write-up. I certainly appreciate this website. Keep writing!