vn
English
Español
中國人
Deutsch
Українська
Português
Français
भारतीय
Türkçe
한국인
Italiano
Gaeilge
اردو
Indonesia
Polski Hướng dẫn này giải thích cách hoạt động của json.dump() và json.dumps trong Python — một công cụ quan trọng để lưu trữ dữ liệu có cấu trúc ở định dạng JSON. Cách tiếp cận này được áp dụng rộng rãi khi làm việc với tệp cấu hình, kết quả web scraping, phản hồi API và các dữ liệu có cấu trúc khác. Nội dung bao gồm cú pháp của hàm, các tham số, sự khác biệt giữa json.dump và json.dumps, ví dụ sử dụng, các kiểu dữ liệu được hỗ trợ cũng như các phương pháp tốt nhất để xử lý JSON trong Python một cách hiệu quả và đáng tin cậy.
json.dump là một hàm trong mô-đun json được dùng để tuần tự hóa (serialize) một đối tượng Python sang định dạng JSON và lưu trực tiếp vào tệp.
Hàm json.dump() nhận hai đối số chính — dữ liệu và đối tượng tệp nơi kết quả JSON sẽ được ghi. Cấu trúc gọi tổng quát như sau:
json.dump(obj, file, **kwargs)
Ngoài các đối số chính, có một số tham số tùy chọn:
Những tham số này đặc biệt hữu ích khi khả năng đọc dữ liệu quan trọng, cũng như khi chuẩn bị tệp cho xử lý bằng máy.
Hàm json dump trong Python được dùng để tuần tự hóa dữ liệu và ngay lập tức lưu nó vào tệp ở định dạng JSON. Nó hữu ích trong các trường hợp cần lưu kết quả web scraping, cấu hình ứng dụng hoặc dữ liệu đã thu thập vào tệp để phân tích hoặc truyền tải sau này.
Các ưu điểm chính bao gồm:
Mô-đun json là một phần của thư viện chuẩn Python, nghĩa là không cần cài đặt bên thứ ba — chỉ cần import ở đầu script là đủ.
Hàm json.dump() chỉ hỗ trợ tuần tự hóa các đối tượng có thể biểu diễn ở định dạng JSON. Bao gồm list, dictionary, string, integer, số thực (floating-point), giá trị Boolean và None.
Ví dụ minh họa cách sử dụng thông thường của json.dump() để lưu một dictionary:
import json
data = {
"name": "Helen",
"age": 28,
"is_active": True,
"skills": ["Python", "SQL"]
}
with open("user.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
Nếu cố gắng tuần tự hóa các đối tượng không được hỗ trợ (như class hoặc function), một TypeError sẽ được đưa ra.
Python cung cấp hai hàm tương tự để tuần tự hóa dữ liệu sang định dạng JSON — json.dump() và json.dumps(). Mặc dù tên gọi của chúng khá giống nhau, nhưng chúng phục vụ những mục đích khác nhau:
Sự khác biệt giữa json.dump() và việc ghi đầu ra của json.dumps() vào tệp được minh họa trong các ví dụ dưới đây:
import json
data = {"key": "value"}
# Sử dụng json.dump()
with open("output.json", "w", encoding="utf-8") as f:
json.dump(data, f)
# Sử dụng json.dumps()
json_string = json.dumps(data)
print(json_string) # {"key": "value"}
Điểm khác biệt chính giữa hai hàm dựa trên nhiệm vụ:
Lưu dữ liệu vào tệp JSON là một trong những kịch bản phổ biến nhất trong Python. Để làm điều này, chỉ cần tạo một đối tượng Python (ví dụ: dictionary), mở tệp ở chế độ ghi, và truyền đối tượng vào hàm json.dump().
Viết JSON vào tệp trong Python:
import json
# 1. Dữ liệu cần lưu
user_data = {
"username": "admin",
"active": True,
"roles": ["editor", "moderator"]
}
# 2. Mở tệp ở chế độ ghi
with open("data.json", "w", encoding="utf-8") as f:
# 3. Ghi vào tệp
json.dump(user_data, f, ensure_ascii=False, indent=4)
Trong ví dụ này:
Khi làm việc với JSON trong Python, nên tuân theo một số thực hành giúp đơn giản hóa việc xử lý dữ liệu và tăng độ tin cậy của mã:
Tuân theo các nguyên tắc này giúp ngăn ngừa lỗi và cải thiện khả năng mở rộng, đặc biệt trong các nhiệm vụ liên quan đến việc thu thập và xử lý khối lượng lớn thông tin có cấu trúc.
json.dump() là một công cụ đáng tin cậy và hiệu quả để lưu dữ liệu có cấu trúc ở định dạng JSON, nó cho phép ghi trực tiếp các đối tượng Python vào tệp đồng thời hỗ trợ định dạng, sắp xếp khóa và xử lý văn bản đa ngôn ngữ chính xác. Hàm json.dumps() bổ sung bằng cách cung cấp tuần tự hóa dựa trên chuỗi cho xử lý linh hoạt. Các hàm này bao phủ nhiều trường hợp sử dụng, từ lưu trữ tệp cấu hình đến quản lý kết quả web scraping và phản hồi API.
Tuân thủ các thực hành tốt nhất đảm bảo khả năng đọc, tính chính xác và sự ổn định khi làm việc với JSON trong Python, khiến các công cụ này trở thành một phần không thể thiếu trong quy trình phát triển hiện đại.
Bình luận: 0