
Overview
Python has a built-in package called json, which can be used to work with JSON data to store and exchange data.
The following imports the json module for use.
import json
Converting from JSON to Python
If you have a JSON string, you can parse it by using the json.loads() method. The result will be a Python dictionary.
import json
x = '{ "name":"Johnny", "age":12, "city":"Marina del Rey"}'
y = json.loads(x)
print(y["city"])
Output:
Marina del Rey
Converting from Python to JSON
If you have a Python object, you can convert it into a JSON string by using the json.dumps() method.
Python objects of the following types can be converted into JSON strings.
- Python dict ——> JSON object
- Python list ——> JSON array
- Python tuple ——> JSON array
- Python string ——> JSON string
- Python int ——> JSON number
- Python float ——> JSON number
- Python True ——> JSON true
- Python False ——> JSON false
- Python None ——> JSON none
import json
print(json.dumps("Hello World"))
Output:
"Hello World"
Formatting the Result
The json.dumps() method has parameters to make it easier to read the result when there is a lot of information.
The indent parameter defines the numbers of indents.
import json
x = {
"name": "Johnny",
"age": 12,
"cars": [
{"model": "Maserati", "year": 2020},
{"model": "Alfa Romeo", "year": 2025}
]
}
print(json.dumps(x, indent=2))
Output:
{
"name": "Johnny",
"age": 12,
"cars": [
{
"model": "Maserati",
"year": 2020
},
{
"model": "Alfa Romeo",
"year": 2025
}
]
}
The sort_keys parameter is used to specify if the result should be sorted or not.
import json
x = {
"name": "Johnny",
"age": 12,
"cars": [
{"model": "Maserati", "year": 2020},
{"model": "Alfa Romeo", "year": 2025}
]
}
print(json.dumps(x, indent=2, sort_keys=True))
Output:
{
"age": 12,
"cars": [
{
"model": "Maserati",
"year": 2020
},
{
"model": "Alfa Romeo",
"year": 2025
}
],
"name": "Johnny"
}
Python Notes:
- The most recent major version of Python is Python 3; however, Python 2 is still in use and quite popular, although not being updated with anything other than security updates
- Python uses new lines to complete a command, as opposed to other programming languages which often use semicolons or parentheses
- Python relies on indentation, using whitespace to define scope, such as the scope of loops, functions, and classes; other programming languages often use curly-brackets for this purpose
- Python string methods return new values, and DO NOT change the original string
- Python tuples are unchangeable after created (their items CANNOT be changed or re-ordered at a later point)
- Python sets are unordered (may appear in random orders when called), unchangeable (the value of individual items cannot be changed after creation), unindexed (items cannot be referred to by index or key), and duplicates are NOT ALLOWED
- As of v3.7, Python dictionaries are ordered and duplicates ARE ALLOWED; in v3.6 and earlier, dictionaries were unordered (did not have a defined order and could not be referred to using an index)
- Python does not have built-in support for arrays, but Python lists can be used as pseudo “arrays”; therefore, all Python list methods will work with these pseudo “arrays”
We’d like to acknowledge that we learned a great deal of our coding from W3Schools and TutorialsPoint, borrowing heavily from their teaching process and excellent code examples. We highly recommend both sites to deepen your experience, and further your coding journey. We’re just hitting the basics here at 1SMARTchicken.