Open JSON File
When you open this viewer (index.html), you will have to browser to the location where the messages.json file is saved and then load this file. You can also find more explanation on how to deal with the messages.json file here. Vim is a file opener software that can be used to open the JSON file on Linux platform. GitHub Atom is a cross-platform tool to open JSON files. Other than these tools, you can use web browsers like Google Chrome and Mozilla Firefox to open JSON files, which we discuss in detail later. File Viewer Plus can open JSON files, and it includes helpful viewing options, such as a syntax tree view for navigating the structure of the JSON data. Open, edit, and save JSON files without database software. Try File Viewer Plus today!
At this time there are multiple ways how JSON files are used. This includes:
- Data storage. NoSQL database engines like MongoDB use JSON to store structured data in the database.
- Application state and notifications. Web applications use JSON to deliver notifications to a server or to download web application state.
JSON is a plain text file format. It also has a fairly straightforward format which could be interpreted by a human if JSON file is opened in a text editor. For example, JSON configuration files could be easily modified and saved back without use of a special software. So, if you have a JSON file which is a configuration file for one of your applications, you can try changing it. When doing this make sure that you don’t break formatting of the JSON file since any error in formatting will cause an application to fail during JSON file loading.
It is still recommended to use an application which produced JSON file to edit it, since there could be a certain formatting in JSON which application expects. For example, certain PC games store settings in JSON file. Typically, these settings could be changed inside the game, but sometimes game developers also provide a tool which can edit settings and save them in the correct format.
JSON files are transferred in e-mail and via internet network connections using application/json mime type. Since JSON is a plain text format with many repeating words and/or numbers it is easily compressible by popular compression algorithms.
Welcome! If you want to learn how to work with JSON files in Python, then this article is for you.
You will learn:
- Why the JSON format is so important.
- Its basic structure and data types.
- How JSON and Python Dictionaries work together in Python.
- How to work with the Python built-in
- How to convert JSON strings to Python objects and vice versa.
- How to use
- How to indent JSON strings automatically.
- How to read JSON files in Python using
- How to write to JSON files in Python using
- And more!
Are you ready? Let's begin! ✨
🔹 Introduction: What is JSON?
Importance and Use Cases of JSON
JSON is basically a format used to store or represent data. Its common use cases include web development and configuration files.
Let's see why:
- Web Development: JSON is commonly used to send data from the server to the client and vice versa in web applications.
- Configuration files: JSON is also used to store configurations and settings. For example, to create a Google Chrome App, you need to include a JSON file called
manifest.jsonto specify the name of the app, its description, current version, and other properties and settings.
Json File Opener Download
🔸 JSON Structure and Format
Now that you know what the JSON format is used for, let's see its basic structure with an example that represents the data of a pizza order:
These are the main characteristics of the JSON format:
- There is a sequence of key-value pairs surrounded by curly brackets
- Each key is mapped to a particular value using this format:
💡 Tip: The values that require quotes have to be surrounded by double quotes.
- Key-value pairs are separated by a comma. Only the last pair is not followed by a comma.
💡 Tip: We typically format JSON with different levels of indentation to make the data easier to read. In this article, you will learn how to add the indentation automatically with Python.
JSON Data Types: Keys and Values
JSON files have specific rules that determine which data types are valid for keys and values.
- Keys must be strings.
- Values can be either a string, a number, an array, a boolean value (
null, or a JSON object.
According to the Python Documentation:
Keys in key/value pairs of JSON are always of the type
str. When a dictionary is converted into JSON, all the keys of the dictionary are coerced to strings.
According to the Google JSON Style Guide:
- Always choose meaningful names.
- Array types should have plural key names. All other key names should be singular. For example: use
'order'if the corresponding value is an array.
- There should be no comments in JSON objects.
🔹 JSON vs. Python Dictionaries
JSON and Dictionaries might look very similar at first (visually), but they are quite different. Let's see how they are 'connected' and how they complement each other to make Python a powerful tool to work with JSON files.
JSON is a file format used to represent and store data whereas a Python Dictionary is the actual data structure (object) that is kept in memory while a Python program runs.
How JSON and Python Dictionaries Work Together
When we work with JSON files in Python, we can't just read them and use the data in our program directly. This is because the entire file would be represented as a single string and we would not be able to access the key-value pairs individually.
We use the key-value pairs of the JSON file to create a Python dictionary that we can use in our program to read the data, use it, and modify it (if needed).
This is the main connection between JSON and Python Dictionaries. JSON is the string representation of the data and dictionaries are the actual data structures in memory that are created when the program runs.
Great. Now that you know more about JSON, let's start diving into the practical aspects of how you can work with JSON in Python.
🔸 The JSON Module
Luckily for us, Python comes with a built-in module called
json. It is installed automatically when you install Python and it includes functions to help you work with JSON files and strings.
We will use this module in the coming examples.
How to Import the JSON Module
json in our program, we just need to write an import statement at the top of the file.
With this line, you will have access to the functions defined in the module. We will use several of them in the examples.
💡 Tip: If you write this import statement, you will need to use this syntaxto call a function defined in the
🔹 Python and JSON Strings
To illustrate how some of the most important functions of the
json module work, we will use a multi-line string with JSON format.
Particularly, we will use this string in the examples. It is just a regular multi-line Python string that follows the JSON format.
- To define a multi-line string in Python, we use triple quotes.
- Then, we assign the string to the variable
💡 Tip: The Python Style Guide recommends using double quote characters for triple-quoted strings.
JSON String to Python Dictionary
We will use the string with JSON format to create a Python dictionary that we can access, work with, and modify.
To do this, we will use the
loads() function of the
json module, passing the string as the argument.
This is the basic syntax:
Here is the code:
Let's focus on this line:
json.loads(data_JSON)creates a new dictionary with the key-value pairs of the JSON string and it returns this new dictionary.
- Then, the dictionary returned is assigned to the variable
Awesome! If we print this dictionary, we see this output:
The dictionary has been populated with the data of the JSON string. Each key-value pair was added successfully.
Now let's see what happens when we try to access the values of the key-value pairs with the same syntax that we would use to access the values of a regular Python dictionary:
The output is:
Exactly what we expected. Each key can be used to access its corresponding value.
💡 Tip: We can use this dictionary just like any other Python dictionary. For example, we can call dictionary methods, add, update, and remove key-value pairs, and more. We can even use it in a for loop.
JSON to Python: Type Conversion
When you use
loads() to create a Python dictionary from a JSON string, you will notice that some values will be converted into their corresponding Python values and data types.
This table presented in the Python Documentation for the
json module summarizes the correspondence from JSON data types and values to Python data types and values:
💡 Tip: The same conversion table applies when we work with JSON files.
Python Dictionary to JSON String
Now you know how to create a Python dictionary from a string with JSON format.
But sometimes we might need to do exactly the opposite, creating a string with JSON format from an object (for example, a dictionary) to print it, display it, store it, or work with it as a string.
To do that, we can use the
dumps function of the
json module, passing the object as argument:
💡 Tip: This function will return a string.
This is an example where we convert the Python dictionary
client into a string with JSON format and store it in a variable:
Let's focus on this line:
json.dumps(client)creates and returns a string with all the key-value pairs of the dictionary in JSON format.
- Then, this string is assigned to the
If we print this string, we see this output:
💡 Tip: Notice that the last value (
false) was changed. In the Python dictionary, this value was
False but in JSON, the equivalent value is
false. This helps us confirm that, indeed, the original dictionary is now represented as a string with JSON format.
If we check the data type of this variable, we see:
Json File Opener Free
So the return value of this function was definitely a string.
Python to JSON: Type Conversion
A process of type conversion occurs as well when we convert a dictionary into a JSON string. This table from the Python Documentation illustrates the corresponding values:
How to Print JSON With Indentation
If we use the
dumps function and we print the string that we got in the previous example, we see:
But this is not very readable, right?
We can improve the readability of the JSON string by adding indentation.
To do this automatically, we just need to pass a second argument to specify the number of spaces that we want to use to indent the JSON string:
💡 Tip: the second argument has to be a non-negative integer (number of spaces) or a string. If indent is a string (such as
't'), that string is used to indent each level (source).
Now, if we call
dumps with this second argument:
The result of printing
That's great, right? Now our string is nicely formatted. This will be very helpful when we start working with files to store the data in a human-readable format.
How to Sort the Keys
You can also sort the keys in alphabetical order if you need to. To do this, you just need to write the name of the parameter
sort_keys and pass the value
💡 Tip: The value of
False by default if you don't pass a value.
Returns this string with the keys sorted in alphabetical order:
How to Sort Alphabetically and Indent (at the same time)
To generate a JSON string that is sorted alphabetically and indented, you just need to pass the two arguments:
In this case, the output is:
💡 Tip: You can pass these arguments in any order (relative to each other), but the object has to be the first argument in the list.
Great. Now you know how to work with JSON strings, so let's see how you can work with JSON files in your Python programs.
🔸 JSON and Files
Typically, JSON is used to store data in files, so Python gives us the tools we need to read these types of file in our program, work with their data, and write new data.
💡 Tip: a JSON file has a
Let's see how we can work with
.json files in Python.
How to Read a JSON File in Python
Let's say that we created an
orders.json file with this data that represents two orders in a pizza shop:
Please take a moment to analyze the structure of this JSON file.
Here are some quick tips:
- Notice the data types of the values, the indentation, and the overall structure of the file.
- The value of the main key
'orders'is an array of JSON objects (this array will be represented as list in Python). Each JSON object holds the data of a pizza order.
If we want to read this file in Python, we just need to use a
💡 Tip: In the syntax above, we can assign any name to
file (green box). This is a variable that we can use within the
with statement to refer to the file object.
The key line of code in this syntax is:
json.load(file)creates and returns a new Python dictionary with the key-value pairs in the JSON file.
- Then, this dictionary is assigned to the
💡 Tip: Notice that we are using
load() instead of
loads(). This is a different function in the
json module. You will learn more about their differences at the end of this article.
Once we have the content of the JSON file stored in the
data variable as a dictionary, we can use it to do basically anything we want.
For example, if we write:
The output is
2 because the value of the main key
'orders' is a list with two elements.
We can also use the keys to access their corresponding values. This is what we typically do when we work with JSON files.
For example, to access the toppings of the first order, we would write:
- First, we select the main key
- Then, we select the first element in the list (index
- Finally, we select the value that corresponds to the key
You can see this 'path' graphically in the diagram:
If we print this value, the output is:
Exactly what we expected. You just need to 'dive deeper' into the structure of the dictionary by using the necessary keys and indices. You can use the original JSON file/string as a visual reference. This way, you can access, modify, or delete any value.
💡 Tip: Remember that we are working with the new dictionary. The changes made to this dictionary will not affect the JSON file. To update the content of the file, we need to write to the file.
How to Write to a JSON File
Let's see how you can write to a JSON file.
The first line of the
with statement is very similar. The only change is that you need to open the file in
'w' (write) mode to be able to modify the file.
💡 Tip: If the file doesn't exist already in the current working directory (folder), it will be created automatically. By using the
'w' mode, we will be replacing the entire content of the file if it already exists.
There are two alternative ways to write to a JSON file in the body of the
Let's see them in detail.
This is a function that takes two arguments:
- The object that will be stored in JSON format (for example, a dictionary).
- The file where it will be stored (a file object).
Let's say that the pizza shop wants to remove the clients' data from the JSON file and create a new JSON file called
orders_new.json with this new version.
We can do this with this code:
This was the original version of the data in the
orders.json file. Notice that the
'client' key-value pair exists.
This is the new version in the
If you analyze this carefully, you will see that the
'clients' key-value pair was removed from all the orders.
However, there is something missing in this file, right?
Please take a moment to think about this... What could it be?
Indentation, of course!
The file doesn't really look like a JSON file, but we can easily fix this by passing the argument
Now the content of the file looks like this:
What a difference! This is exactly what we would expect a JSON file to look like.
Now you know how to read and write to JSON files using
dump(). Let's see the differences between these functions and the functions that we used to work with JSON strings.
🔹 load() vs. loads()
This table summarizes the key differences between these two functions:
💡 Tip: Think of
loads() as 'load string' and that will help you remember which function is used for which purpose.
🔸 dump() vs. dumps()
Here we have a table that summarizes the key differences between these two functions:
💡 Tip: Think of
dumps() as a 'dump string' and that will help you remember which function is used for which purpose.
🔹 Important Terminology in JSON
Json Viewer Windows
Finally, there are two important terms that you need to know to work with JSON:
- Serialization: converting an object into a JSON string.
- Deserialization: converting a JSON string into an object.
🔸 In Summary
- It is commonly used to transfer data on the web and to store configuration settings.
- JSON files have a
- You can convert JSON strings into Python objects and vice versa.
- You can read JSON files and create Python objects from their key-value pairs.
- You can write to JSON files to store the content of Python objects in JSON format.
Json File Opener Software
I really hope you liked my article and found it helpful. Now you know how to work with JSON in Python. Follow me on Twitter @EstefaniaCassN and check out my online courses.