🐍 Ngày 33 - Python hằng ngày 365 ngày - Làm việc với JSON
· 2 min read
🎯 Mục tiêu
Học cách đọc và ghi dữ liệu định dạng JSON trong Python. JSON rất phổ biến khi làm việc với API hoặc lưu trữ dữ liệu cấu trúc như danh sách, từ điển.
🧠 Kiến thức cần biết
- JSON (JavaScript Object Notation) là định dạng văn bản dùng để lưu trữ và truyền dữ liệu.
- Trong Python, mô-đun
json
giúp bạn chuyển đổi giữa kiểu dữ liệu Python (dict
,list
,...) và JSON.
🛠️ Các hàm chính trong mô-đun json
Hàm | Mô tả |
---|---|
json.dump(obj, file) | Ghi một đối tượng Python vào file JSON |
json.load(file) | Đọc JSON từ file và chuyển thành Python object |
json.dumps(obj) | Chuyển đối tượng Python thành chuỗi JSON |
json.loads(str) | Phân tích chuỗi JSON thành Python object |
📦 Ví dụ: Lưu và đọc danh sách công việc
import json
# Danh sách công việc
tasks = [
{"task": "Học Python", "status": "pending"},
{"task": "Làm bài tập", "status": "completed"},
]
# Ghi vào file JSON
with open("tasks.json", "w", encoding="utf-8") as f:
json.dump(tasks, f, ensure_ascii=False, indent=2)
# Đọc lại file JSON
with open("tasks.json", "r", encoding="utf-8") as f:
loaded_tasks = json.load(f)
print("✅ Danh sách công việc từ file:")
for task in loaded_tasks:
print(f"- {task['task']} ({task['status']})")
🎥 Video hướng dẫn:
TikTok:
👉 Xem video TikTok
🎯 Bài tập thực hành
Bài 1: Tạo file my_profile.json
chứa thông tin sau:
{
"name": "Nguyễn Văn A",
"age": 25,
"email": "nguyenvana@example.com",
"skills": ["Python", "Excel", "SQL"]
}
Viết chương trình Python để:
- Đọc file JSON này và in ra tên, tuổi, email, kỹ năng.
Bài 2: Ghi danh sách học viên vào file students.json
students = [
{"name": "An", "score": 8.5},
{"name": "Bình", "score": 7.0},
{"name": "Chi", "score": 9.2},
]
- Lưu danh sách vào file.
- Đọc lại và in học sinh có điểm > 8.
💡 Gợi ý
- Dùng
with open(...)
để đọc/ghi file an toàn. - Dùng
json.dump
vàjson.load
để làm việc với file. - Dùng
indent=2
giúp định dạng JSON đẹp mắt khi lưu.
📌 Ghi chú
- JSON không hỗ trợ kiểu dữ liệu
set
hoặctuple
, hãy chuyển đổi sanglist
nếu cần lưu.