- Python: Pretty Print a Dict (Dictionary) – 4 Ways
- What are Python Dictionaries?
- Pretty Print a Dict in Python with pprint
- Pretty Print a Dict in Python with JSON
- Pretty Print a Nested Dictionary in Python
- Save a Pretty Printed Dictionary to a File
- Conclusion
- 5 Ways to Convert Dictionary to JSON in Python
- What is JSON in Python?
- What is Dictionary in Python?
- Difference Between Dictionary and JSON
- Convert Dict to JSON in Python
- 1) Using dumps() function
- 2) Converting nested dictionary to JSON
- 3) Convert dictionary to JSON quotes
- 4) Convert dictionary to JSON array
- 5) Convert dictionary to JSON using sort_keys
- Conclusion
Python: Pretty Print a Dict (Dictionary) – 4 Ways
In this tutoria, you’ll learn how to use Python to pretty print a dict (dictionary). You’ll learn how to use the pprint library as well as the json library to do this. You’ll also learn how to pretty print nested dictionaries in Python. Finally, you’ll learn how to save a pretty printed dict in Python to a file.
Dictionaries are a key component of working with data in Python, including with data loaded from the internet. Many APIs return data in JSON format, which is very similar to the formatting of Python dictionaries. Dictionaries provide incredibly helpful ways in which you can store and retrieve data. However, they can be a bit tricky to read. Because of this, it’s often helpful to be able to print out your dictionaries in a more human-readable format. Without further ado, let’s take a look at what you’ll learn!
The Quick Answer: Use the json library
What are Python Dictionaries?
Python dictionaries are data structures that use key:value pairs to hold and retrieve data. Keys are unique, in Python dictionaries, and must be made up of immutable data types (such as strings or integers), while values can be made up of anything, including additional dictionaries.
Let’s take a look at what a dictionary looks like in Python:
We can retrieve a value if we know a dictionary’s key. For example, if we wanted to retrieve the value for age , we could simply write: print(sample_dict.get(‘age’)) , which would return 31 .
Now that we have an understanding of what Python dictionaries are, let’s take a look at how to pretty print them.
Need to check if a key exists in a Python dictionary? Check out this tutorial, which teaches you five different ways of seeing if a key exists in a Python dictionary, including how to return a default value.
Pretty Print a Dict in Python with pprint
Python comes with a built-in library called pprint , which stands for pretty-print. Using this library, we can print out more nicely formatted data structures, including dictionaries.
The pprint library allows us to specify a number of different parameters, including the following:
- indent : the number of spaces to indent each line, where the default value is 1
- width : the maximum caharacters that are allowed on a single line, where the default is None (meaning, the maximum)
- depth : the number of levels to show while using nested data types, where the default is None (meaning that all levels of depth are shown)
- stream : used to specify an output stream and can be used to save to a file
- compact : If set to True , the values will be printed on single lines, to a certain width
- sort_dicts : if True , it prints the key-value pairs according to an alphabetical order of the keys. Defaults to True
Let’s load a dictionary and see how we can pretty print it using Python:
# Pretty Print a Dictionary using pprint import pprint sample_dict = pprint.pprint(sample_dict) # Returns: #
In the next section, you’ll learn how to use the JSON library to pretty print a Python dict.
Want to learn more about Python list comprehensions? Check out this in-depth tutorial that covers off everything you need to know, with hands-on examples. More of a visual learner, check out my YouTube tutorial here.
Pretty Print a Dict in Python with JSON
As mentioned earlier, Python dictionaries carry a lot of similar characteristics with JSON objects. Because of this, we can use the JSON library to return a formatted JSON string.
Built into the json library is a function called .dumps() , which dumps a string object. Let’s take a look at what the .dumps() function looks like and what parameters it takes:
- sort_keys which sorts a dictionary’s keys and defaults to False
- indent : which lets Python know how many spaces to indent levels by
Let’s use the same dictionary as above and pretty print it using Python’s json library:
# Pretty Print a Dictionary using json import json sample_dict = , 'Joe': > pretty = json.dumps(sample_dict, indent=4) print(pretty) # Returns: #
We can see here that this returns a very similar printed dictionary, with a key difference: the list is also printed on seperate lines, making it easier to read. This, of course, is a much prettier way to print your dictionaries.
In the next section, you’ll learn how to pretty print a nested dictionary in Python.
Want to learn how to pretty print a JSON file using Python? Learn three different methods to accomplish this using this in-depth tutorial here.
Pretty Print a Nested Dictionary in Python
In many cases, your dictionaries will be complex. You may even encounter dictionaries that contain other dictionaries. For example, you may have a dictionary that contains information on different people. Each key of the top-level dictionary will represent a person’s name and the value will be a different dictionary that will describe key attributes of a person.
Because of the complexity of dictionaries you may encounter, to better understand their structure, you may wish to print them out a way that more appropriately describes their structure.
Using the json library, this is actually very easy! It actually works in the same way as printing a normal dictionary. Let’s take a look:
# Pretty Print a Nested Dictionary using json import json sample_dict = , 'Joe': > pretty = json.dumps(sample_dict, indent=4, sort_keys=True) print(pretty) # Returns: # < # "Joe": < # "age": 40, # "books": [ # "Lord of the Flies" # ], # "gender": "male" # >, # "Nik": < # "age": 31, # "books": [ # "Harry Potter", # "Lord of the Rings" # ], # "gender": "male" # ># >
In the next section, you’ll learn how to save a pretty printed dictionary to a file.
Save a Pretty Printed Dictionary to a File
Finally, let’s take a look at how to save a pretty printed dict to a file. We can use the pprint library to accomplish this, with the help of a context manager.
Let’s see how this can be done using Python:
# Save a pretty printed dict to a file import pprint sample_dict = , 'Joe': > with open('path_to_file', 'w') as file_name: pprint.pprint(sample_dict, file_name)
We use a context manager using the open() function to link to a particular file where we want to save our dictionary and then use the ‘w’ parameter to say we want to write to the file. We then pass the dictionary and this file_name into the pprint() function to save it to a file.
Want to learn more about Python for-loops? Check out my in-depth tutorial that takes your from beginner to advanced for-loops user! Want to watch a video instead? Check out my YouTube tutorial here.
Conclusion
In this post, you learned how to use Python to pretty print a dict. You learned how to do this using the pprint and json libraries, and learned the ways in which these two approaches differ. You also learned how to pretty print nested dictionaries in Python as well as how to save pretty printed dictionaries to a file.
To learn more about the pprint library, check out the official documentation here.
5 Ways to Convert Dictionary to JSON in Python
Most of the programs need data to work. This data is provided to the program while running or built into the program since the beginning. JSON is one of the ways to store this data in an organized and easy-to-handle manner. On the other hand, a python dictionary is one of the data types that can store a sequence of elements simultaneously in a well-formatted manner, just like JSON.
Therefore, in this article, let us understand some of the common methods to convert python Dict to JSON after a brief introduction of JSON and dictionary in python.
What is JSON in Python?
JSON(Javascript Object Notation) is a standard format to transfer the data as a text that can be sent over a network. JSON is a syntax for exchanging and storing data over the network. It uses lots of APIs and databases that are easy for humans and machines to read and understand. Python has an inbuilt package named ‘json’, which you can use to work with JSON data. To use this feature, you have to import the JSON package in python programming.
Python JSON stores the data in the form of key-value pairs inside curly brackets(<>), and hence, it is pretty similar to a python dictionary. But here, the JSON key is a string object with double quotation mark compulsorily. However, the value corresponding to the key could be of any data type, i.e., string, integer, nested JSON, or any other sequence data type similar to an array.
For Example
import json # some JSON: a = '< "name":"Jack", "age":21, "city":"California">' # parse x: b = json.loads(a) print(b["city"])
Remember that the JSON exists as a string but not a string from the data context.
What is Dictionary in Python?
Dictionary is one of the data types in python used to store the sequence of data in a single variable. Python dictionary helps store the data values like a map that is not supported by any other data type which holds only a single value as an element. Dictionary is an unordered and changeable collection of data elements stored in the form of key:value pairs inside the curly brackets(<>). Here the colon(:) represents the key associated with its respective value.
Dictionary values can be of any data type and allow duplicate values, whereas dictionary keys are unique and immutable.
For Example
sample_dict = < "vegetable": "carrot", "fruit": "orange", "chocolate": "kitkat" > print(sample_dict)
Remember that dictionary keys are case sensitive; therefore, the same name but different cases of the key will be treated distinctly.
Difference Between Dictionary and JSON
Keys can be any hashable object
Keys can be ordered and repeated
No such default value is set
Keys has a default value of undefined
Values can be accessed by subscript
Values can be accessed by using “.”(dot) or “[]”
Can use a single or double quote for the string object
The double quotation is necessary for the string object
Return ‘string’ object type
Convert Dict to JSON in Python
Below are 5 common methods you can use to convert a dict to JSON in python:
1) Using dumps() function
Python possesses a default module, ‘json,’ with an in-built function named dumps() to convert the dictionary into a JSON object by importing the «json» module. «json» module makes it easy to parse the JSON strings which contain the JSON object. The below example displays the conversion of a python dictionary to a JSON object.
For Example
import json Fruit_Dict = < 'name': 'Apple', 'color': 'Red', 'quantity': 10, 'price': 60 > Fruit_Json = json.dumps(Fruit_Dict) print(Fruit_Json)
2) Converting nested dictionary to JSON
You can create a nested dictionary in the above example by declaring a new dictionary inside the default dictionary. To convert the nested dictionary into a json object, you can use the dumps function itself. Here, we have used indent=3, which refers to the space at the beginning of the code line:
For Example
import json dictionary = < 'fruit':"Grapes": "10","color": "green">, 'vegetable':"chilli": "4","color": "red">, > result = json.dumps(dictionary, indent = 3) print(result)
"fruit": "Grapes": "10", "color": "green" >, "vegetable": "chilli": "4", "Grapes": "10", >, "vegetable": "chilli": "4", "color": "pink" >
3) Convert dictionary to JSON quotes
You can declare a class and use it for the string representation to convert it into json object. Here, we have declared the class using the __str__(self) method, and the variable ‘collect’ is declared along with the variable ‘result’ to assign with the class and convert into the json object.
For Example
import json class fruits(dict): def __str__(self): return json.dumps(self) collect = [['apple','grapes']] result = fruits(collect) print(result)
4) Convert dictionary to JSON array
You can declare an array to check the keys and values of the dictionary and convert it into json object. The for loop stores the value, and the dumps() method stores the dictionary. Check out the below example for a better understanding of the approach.
For Example
import json dictionary = 'Apple': 3, 'Grapes': 1> array = [ 'key' : i, 'value' : dictionary[i]> for i in dictionary] print(json.dumps(array))
5) Convert dictionary to JSON using sort_keys
Using this method, you can use the sort_keys attribute inside the dumps() method and set it to “true” to sort the dictionary and convert it into json object. If you set it to false, the dictionary won’t be sorted to find the json object in python.
For Example
import json dictionary ="Name": "jack", "Branch": "IT", "CGPA": "8.6"> result = json.dumps(dictionary, indent = 3, sort_keys = True) print(result)
"Branch": "IT", "CGPA": "8.6", "Name": "jack" >
Conclusion
As discussed above, JSON is a data format, and a dictionary in python is a data structure. If you wish to exchange data for different processes, you should use JSON format to serialize your python dictionary. Therefore, it is essential and recommended to learn all the above methods to convert python dictionaries to a json object and make your programming easy and efficient. To learn more about conversion in python, visit our article “3 Ways to Convert List to Tuple in Python”.