Latest Post

Tăng thứ hạng và truy cập tự nhiên với 10 phương pháp SEO hay nhất Kiếm Tiền Online (mmo): Khái Niệm và Các Hình Thức Phổ Biến

Trong lập trình Python, điều mà tôi không thích nhất là cách hàm print mặc định của Python xử lý dữ liệu kiểu từ điển (dictionary). Hàm print này xuất dữ liệu dictionary trên cùng một dòng, và điều này gây khó khăn trong việc debug và xác định cấu trúc key-value của 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

Trong bài viết này, tôi đã tổng hợp 3 phương pháp, mời bạn tham khảo. Nếu bạn có bất kỳ cách nào khác, xin vui lòng chia sẻ bằng cách để lại bình luận!

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

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ả:

Mặc dù không có vẻ đẹp bằng hai phong cách trước, nhưng cách này đã dễ nhìn hơn nhiều, phải không?

Trả lời

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 *