Để in cấu trúc dữ liệu phức tạp (non-trivial) ra console Python, ta có thể dùng module pretty printer (pprint). Nếu đối tượng có nhiều văn bản trên một dòng, phương thức này sẽ ngắt chúng thành các dòng riêng biệt.
Để dùng module này, nên nhập bằng:
import pprint
Có các phương thức khác nhau liên quan đến pretty print:
Phương thức pprint.pformat(object, indent=1, width=80, depth=None, *, compact=False)
Trả về biểu diễn đã định dạng của object dưới dạng chuỗi. Các thông tin như indent, width, depth đều được truyền làm đối số để thực hiện nhiệm vụ.
Phương thức pprint.pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False)
In biểu diễn đã định dạng của object ra stream. Khi stream không chỉ định, dùng sys.stdout.
Phương thức pprint.isreadable(object)
Kiểm tra xem biểu diễn đã định dạng của object có đọc được (readable) hay không.
Mã ví dụ
import pprint
import json
json_data = json.loads(open('sample_json.json', 'r').read())
print("Dữ liệu JSON:")
print(json_data)
if pprint.isreadable(json_data):
print('Dữ liệu có thể đọc được')
else:
print('Dữ liệu KHÔNG đọc được')
print("\nDữ liệu JSON định dạng đúng:")
pprint.pprint(json_data)
Kết quả
Dữ liệu JSON:
[{'name': 'Subhas', 'age': 25, 'city': 'Kolkata'}, {'name': 'Palash', 'age': 22, 'city': 'Delhi'}, {'name': 'Vivek', 'age': 23, 'city': 'Bangaluru'}]
Dữ liệu có thể đọc được
Dữ liệu JSON định dạng đúng:
[{'age': 25, 'city': 'Kolkata', 'name': 'Subhas'}, {'age': 22, 'city': 'Delhi', 'name': 'Palash'}, {'age': 23, 'city': 'Bangaluru', 'name': 'Vivek'}]