Chúng ta có thể sử dụng phương thức dumps()
để nhận chuỗi JSON được định dạng đẹp.
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:
[
{
"ID": 10,
"Name": "Pankaj",
"Role": "CEO"
},
{
"ID": 20,
"Name": "David Lee",
"Role": "Editor"
}
]
json.loads()
để tạo đối tượng JSON từ chuỗi JSON.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.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.
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ả:
[{'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.
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:
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ả:
{"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 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.
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.
Sử dụng tham số indent
trong json.dumps()
.
json.dumps
và pprint
?json.dumps
định dạng chuỗi JSON. pprint
in đẹp cấu trúc dữ liệu Python.
python -m json.tool input.json
jq
: jq . input.json
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.