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?