JSON là ngôn ngữ chung của các hệ thống hiện đại
Khi bạn lấy dữ liệu từ API, lưu cài đặt của ứng dụng, đọc thông tin cấu hình hoặc làm việc với các hệ thống khác – rất có thể bạn đang làm việc với JSON.
JSON chính là “tiếng nói chung” giữa con người, hệ thống và web.
Mục tiêu bài học
- Hiểu cấu trúc của JSON
- Phân biệt JSON và dict trong Python
- Chuyển đổi giữa JSON và Python
- Đọc và ghi file
.json
- Ứng dụng: lưu dữ liệu người dùng, cấu hình, dữ liệu từ API
1. JSON là gì?
- JavaScript Object Notation
- Định dạng văn bản dùng để trao đổi dữ liệu
- Cấu trúc giống dict, list của Python
- Ví dụ:
{
"name": "John",
"age": 30,
"languages": ["Python", "JavaScript"]
}
2. Import thư viện json
import json
3. Chuyển từ Python → JSON (Serialize)
nguoi = {
"ten": "Linh",
"tuoi": 25,
"so_thich": ["Code", "Cafe"]
}
chuoi_json = json.dumps(nguoi, ensure_ascii=False)
print(chuoi_json)
📌 dumps()
= Dump to String (ra chuỗi JSON)
4. Chuyển từ JSON → Python (Deserialize)
du_lieu = '{"ten": "Linh", "tuoi": 25}'
nguoi = json.loads(du_lieu)
print(nguoi["ten"]) # Linh
📌 loads()
= Load from String
5. Ghi vào file .json
with open("data.json", "w", encoding="utf-8") as f:
json.dump(nguoi, f, ensure_ascii=False, indent=2)
6. Đọc từ file .json
with open("data.json", "r", encoding="utf-8") as f:
du_lieu = json.load(f)
print(du_lieu)
7. Ứng dụng thực tế
Giả sử bạn lấy dữ liệu từ API thời tiết, sau đó lưu lại vào file .json
để dùng offline hoặc phân tích:
import requests, json
res = requests.get("https://api.coindesk.com/v1/bpi/currentprice.json")
data = res.json()
with open("bitcoin.json", "w", encoding="utf-8") as f:
json.dump(data, f, indent=2)
print("✅ Đã lưu dữ liệu Bitcoin vào file.")
8. Lưu danh sách nhiều item
users = [
{"name": "A", "email": "a@gmail.com"},
{"name": "B", "email": "b@yahoo.com"}
]
json.dump(users, open("users.json", "w", encoding="utf-8"), indent=2)
Bạn đã học được
- Cách làm việc với JSON:
dumps()
,loads()
,dump()
,load()
- Phân biệt rõ giữa dict Python và chuỗi JSON
- Ghi và đọc file
.json
- Kết nối với API và lưu dữ liệu vào file
- Nền tảng để phân tích dữ liệu, cấu hình, hoặc tự động hóa
Thảo luận