Python красиво вывести словарь

Как распечатать элементы словаря в Python

Чтобы напечатать элементы словаря пары ключ:значение, вы можете использовать dict.items(), dict.keys() или dict.values.(), функцию print().

В этом руководстве мы рассмотрим примеры программ, чтобы напечатать словарь как одну строку, словарь пары ключ:значений по отдельности, ключи словаря и значения словаря.

Распечатать словарь, как одну строку

Чтобы распечатать все содержимое словаря, вызовите функцию print() со словарем, переданным в качестве аргумента. print() преобразует словарь в одностроковый литерал и выводит на стандартный вывод консоли.

В следующей программе мы инициализируем словарь и распечатаем его целиком.

dictionary = print(dictionary)

Как распечатать пары ключ:значение?

Чтобы распечатать пары ключ:значение в словаре, используйте цикл for и оператор печати для их печати. dict.items() возвращает итератор для пар ключ:значение во время каждой итерации.

В следующей программе мы инициализируем словарь и распечатаем пары ключ:значение словаря с помощью цикла For Loop.

dictionary = for key,value in dictionary.items(): print(key, ':', value)

Печать ключей словаря

Чтобы напечатать ключи словаря, используйте цикл for для обхода ключей с помощью итератора dict.keys() и вызова функции print().

В следующей программе мы инициализируем словарь и распечатаем ключи словаря с помощью For Loop.

dictionary = for key in dictionary.keys(): print(key)

Печать значения словаря

Чтобы распечатать значения словаря, используйте цикл for для просмотра значений словаря с помощью итератора dict.values() и вызова функции print().

В следующей программе мы инициализируем словарь и распечатаем значения словаря с помощью For Loop.

dictionary = for value in dictionary.values(): print(value)

Источник

Python: Pretty Print a Dict (Dictionary) – 4 Ways

Python Pretty Print a Dictionary Cover Image

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!

Читайте также:  Google com configure html

The Quick Answer: Use the json library

Quick Answer - Python Pretty Print a Dictionary

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:

  1. indent : the number of spaces to indent each line, where the default value is 1
  2. width : the maximum caharacters that are allowed on a single line, where the default is None (meaning, the maximum)
  3. 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)
  4. stream : used to specify an output stream and can be used to save to a file
  5. compact : If set to True , the values will be printed on single lines, to a certain width
  6. 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:

  1. sort_keys which sorts a dictionary’s keys and defaults to False
  2. indent : which lets Python know how many spaces to indent levels by
Читайте также:  Class details in java

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.

Читайте также:  Php set header array

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.

Источник

json.dumps красиво распечатать в Python

Изображение баннера

json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) Serialize obj to a JSON formatted str using this conversion table. The arguments have the same meaning as in dump(). Note 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. As a result of this, if a dictionary is converted into JSON and then back into a dictionary, the dictionary may not equal the original one. That is, loads(dumps(x)) != x if x has non-string keys.

JSON

Если нужно распечатать JSON

import json print (json.dumps(response.json() , indent = 4 ))

Словарь

Если нужно распечатать не JSON а словарь, json.dumps нужно использовать так:

import json print (json.dumps(resp.dict , indent = 4 )) # Если нужно отсортировать словарь print (json.dumps(resp.dict , indent = 4 , sort_keys = True ))

json.dumps + json.loads

Часто приходится использовать связку json.dumps + json.loads

import json response_json = json.loads(response.text) print (json.dumps(response_json, indent = 4 ))

Обратиться ко вложенному объекту

Предположим, приходит следующий json

Из него нам интересен только статус городов: посещён или не посещён.

Важно понимать, что если у вас есть объет типа dict применять json.dumps() не имеет смысла.

Допустим, полученный объект выглядит так:

Можно сразу достать объект из словаря.

cities = data[«address»][«cities»] for city in cities: print (city[ «place» ][ «status» ])

Если нужно достать статус какого-то определённого места, важно не запутаться где список а где словарь

cities — это список, поэтому там нужно использовать не ключ а индекс, например [ 0 ] для Малаги

print (data[ «address» ][ «cities» ][ 0 ][ «place» ][ «status» ])

json.loads() пригодится если данные приходят в виде str

Ошибки

TypeError: the JSON object must be str, bytes or bytearray, not dict

Значит, что к объекту применяют неправильный метод. Чтобы понимать какой тип имеют объекты прочитайте следующий параграф.

Типы данных

Нужно понимать с какими объектами вы работаете. С этим поможет функция type()

Допустим r = requests.get() тогда r это объект типа

Если применить метод json() тогда r.json() станет объектом типа dict

К этому словарю теперь можно применить функцию json.dumps()

json.dumps(r.json()) будет иметь тип строки

Обратно в словарь можно переделать объект с помощью json.loads()

json.loads(json.dumps(r.json())) будет иметь тип

Визуально различить эти объекты будет непросто. В PyCharm строка имеет » двойные кавычки

Источник

Оцените статью