---
title: "Cách hiển thị JSON đẹp trong Python"
description: "Tìm hiểu cách in đẹp JSON trong Python sử dụng các công cụ tích hợp như json.dumps() và pprint để cải thiện khả năng đọc và gỡ lỗi dữ liệu có cấu trúc một cách hiệu quả."
url: https://cloudfly.vn/cach-hien-thi-json-dep-trong-python
image: https://media.cloudfly.vn/posts/cach-hien-thi-json-dep-trong-python.png
---

# Cách hiển thị JSON đẹp trong Python

## 1. Hiển thị Chuỗi JSON  đẹp trong Python

Chúng ta có thể sử dụng phương thức `dumps()` để nhận chuỗi JSON được định dạng đẹp.

```python
import json

json_data = '[{"ID":10,"Name":"Pankaj","Role":"CEO"},'{"ID":20,"Name":"David Lee","Role":"Editor"}]'

json_object = json.loads(json_data)

json_formatted_str = json.dumps(json_object, indent=2)

print(json_formatted_str)
```

Kết quả hiển thị ra JSON được định dạng:

```json
[
  {
    "ID": 10,
    "Name": "Pankaj",
    "Role": "CEO"
  },
  {
    "ID": 20,
    "Name": "David Lee",
    "Role": "Editor"
  }
]
```

- Đầu tiên, chúng ta dùng `json.loads()` để tạo đối tượng JSON từ chuỗi JSON.
- Phương thức `json.dumps()` nhận đối tượng JSON và trả về chuỗi JSON được định dạng. Tham số `indent` xác định mức độ thụt lề cho chuỗi định dạng.

## 2. Hiển thị File JSON đẹp trong Python

Hãy xem điều gì xảy ra khi chúng ta hiển thị dữ liệu từ file JSON. Dữ liệu trong file được lưu dưới dạng in đẹp.

![Json Pretty Printed File](https://journaldev.nyc3.cdn.digitaloceanspaces.com/2019/10/json-pretty-printed-file.png)

```python
import json

with open('Cars.json', 'r') as json_file:
    json_object = json.load(json_file)

print(json_object)

print(json.dumps(json_object))

print(json.dumps(json_object, indent=1))
```

Kết quả:

```json
[{'Car Name': 'Honda City', 'Car Model': 'City', 'Car Maker': 'Honda', 'Car Price': '20,000 USD'}, {'Car Name': 'Bugatti Chiron', 'Car Model': 'Chiron', 'Car Maker': 'Bugatti', 'Car Price': '3 Million USD'}]
[{"Car Name": "Honda City", "Car Model": "City", "Car Maker": "Honda", "Car Price": "20,000 USD"}, {"Car Name": "Bugatti Chiron", "Car Model": "Chiron", "Car Maker": "Bugatti", "Car Price": "3 Million USD"}]
[
 {
  "Car Name": "Honda City",
  "Car Model": "City",
  "Car Maker": "Honda",
  "Car Price": "20,000 USD"
 },
 {
  "Car Name": "Bugatti Chiron",
  "Car Model": "Chiron",
  "Car Maker": "Bugatti",
  "Car Price": "3 Million USD"
 }
]
```

Rõ ràng từ kết quả là chúng ta phải truyền giá trị `indent` để có dữ liệu JSON ở định dạng in đẹp.

## Gỡ Lỗi Phản Hồi API

Khi bạn gửi yêu cầu API, thường nhận được một chuỗi JSON dài trên một dòng để tiết kiệm băng thông. Điều này khó đọc và hiểu, đặc biệt với dữ liệu phức tạp hoặc lồng nhau sâu. In đẹp biến chuỗi không đọc được đó thành định dạng có cấu trúc, thụt lề rõ ràng và dễ đọc.

Ví dụ sử dụng API JSONPlaceholder:

```python
import requests
import json

url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)

if response.status_code == 200:
    data = response.json()
    print(json.dumps(data))
    print(json.dumps(data, indent=2))
else:
    print(f"Error: {response.status_code}")
```

Kết quả:

```bash
{"userId": 1, "id": 1, "title": "sunt aut facere repellat provident occaecati excepturi", "body": "quia et suscipit\nsuscipit recusandae..."}

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi",
  "body": "quia et suscipit\nsuscipit recusandae..."
}
```

## Ghi Nhận Dữ Liệu Có Cấu Trúc

Ghi nhận dữ liệu JSON phức tạp dưới dạng in đẹp giúp dễ đọc hơn đặc biệt khi kiểm tra nhật ký thủ công hoặc dùng công cụ đơn giản.

## Cải Thiện Khả Năng Đọc Các File Cấu Hình

In đẹp các file cấu hình JSON giúp dễ dàng xem xét thủ công, tạo sự khác biệt rõ ràng trong quản lý phiên bản và nhanh chóng hiểu cấu trúc.

## Câu Hỏi Thường Gặp

### 1. Cách tốt nhất để thụt lề JSON trong Python là gì?
Sử dụng tham số `indent` trong `json.dumps()`.

### 2. Sự khác nhau giữa `json.dumps` và `pprint`?
`json.dumps` định dạng chuỗi JSON. `pprint` in đẹp cấu trúc dữ liệu Python.

### 3. Công cụ tự động in đẹp?
- Terminal: `python -m json.tool input.json`
- Công cụ `jq`: `jq . input.json`
- Plugin cho trình soạn thảo

## Kết Luận

In đẹp JSON giúp cải thiện khả năng đọc và gỡ lỗi. Hai công cụ `json.dumps()` và `pprint` trong Python cung cấp cách dễ dàng định dạng dữ liệu JSON.

## Tham Khảo

- [Python.json.dumps docs](https://docs.python.org/3/library/json.html#json.dumps)
- [StackOverflow question](https://stackoverflow.com/questions/12943819/how-to-prettyprint-json-file)
