[Python 3] Print dữ liệu kiểu dictionary để dễ nhìn đẹp mắt hơn


Khi lập trình Python, điểm mình không thích nhất là hàm print mặc định của Python, với dữ liệu kiểu dictionary, nó lại hiển thị trên 1 dòng làm cho việc debug rất khó khăn, rất khó xác định cấu trúc key-value cảu một biến dictionary.

VD: mình có một biến dictionary có cấu trúc như sau:

my_dict = {
    'name': 'Nguyen Van A',
    'age': 18,
    'groups': ['admin', 'user'],
    'website': {
        'name': 'VinaSupport',
        'url': 'https://vinasupport.com'
    }
}

Kết quả hiển thị sau khi sử dụng hàm print(my_dict) mặc định của Python 3:

Như ta thấy dữ print ra hiển thi trên 1 dòng rất khó xác định được kiểu cấu trúc key-value. Vì vậy hãy tham khảo những cách dưới đây để có thể print dữ liệu dễ nhìn hơn.

Cách hiển thị dữ liệu kiểu dictionary

Có 3 cách được mình tổng hợp trong bài viêt này, các bạn có thể tham khảo. Ngoài ra các bạn còn biết thêm cách nào nữa thì vui lòng để lại comment nhé!

1. Sử dụng json.dump

import json

my_dict = {
    'name': 'Nguyen Van A',
    'age': 18,
    'groups': ['admin', 'user'],
    'website': {
        'name': 'VinaSupport',
        'url': 'https://vinasupport.com'
    }
}

print(json.dumps(my_dict, indent=4))

Kết quả đã dễ nhìn hơn rất nhiều.

2. Sử dụng thư viện PyYAML

Để hiểu về YAML và cài đặt với Python, các bạn vui lòng đọc bài viết sau: YAML là gì? Cách đọc file yaml trong lập trình Python

Giờ thử đoạn code bên dưới:

import yaml

my_dict = {
    'name': 'Nguyen Van A',
    'age': 18,
    'groups': ['admin', 'user'],
    'website': {
        'name': 'VinaSupport',
        'url': 'https://vinasupport.com'
    }
}

print(yaml.dump(my_dict, default_flow_style=False))

Kết quả dữ liệu được hiển thị theo kiểu YAML

3. Sử dụng pprint

Chúng ta có thể sử dụng 1 module của Python 3 là pprint

import pprint

my_dict = {
    'name': 'Nguyen Van A',
    'age': 18,
    'groups': ['admin', 'user'],
    'website': {
        'name': 'VinaSupport',
        'url': 'https://vinasupport.com'
    }
}

pprint.pprint(my_dict, width=1)

Kết quả:

Tuy không đẹp mắt so với 2 cách trên, nhưng cũng đã dễ nhìn hơn nhiều rồi đúng không?

Nguồn: vinasupport.com

 

             
SHARE

Bài viết liên quan

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web