Trình phân tích cú pháp và trình xác thực JSON của Python

Tìm hiểu cách đọc, xác thực, sửa đổi và tuần tự hóa JSON trong Python. Làm chủ thư viện json tích hợp với các ví dụ thực tế.

Thử trong Trình chỉnh sửa

Tổng quan

JSON (Ký hiệu đối tượng JavaScript) là định dạng tiêu chuẩn để trao đổi dữ liệu trên web. Python cung cấp một mô-đun tích hợp mạnh mẽ có tên `json` để dịch các chuỗi JSON sang từ điển Python và ngược lại.

Mô-đun này hiển thị hai nhóm thao tác chính: `loads` và `dumps` để xử lý trực tiếp các chuỗi JSON và `load` và `dump` để ghi hoặc đọc dữ liệu trực tiếp từ luồng tệp.

Khi làm việc với JSON, việc xử lý lỗi là rất quan trọng. Python đưa ra một `json.JSONDecodeError` nếu cú ​​pháp chuỗi bị hỏng. Đây là điều cần thiết cần phát hiện khi sử dụng tải trọng từ các API công khai.

Đầu ra mã & thực thi

Một tập lệnh thể hiện xác thực chuỗi JSON, phân tích cú pháp chính tả, sửa đổi và in ấn đẹp mắt.

import json

raw_json = """
{
    "status": "success",
    "data": {
        "user_id": 9042,
        "username": "coder_xyz",
        "roles": ["admin", "developer"],
        "verified": true
    }
}
"""

try:
    # Parsing JSON string into Python dict
    data = json.loads(raw_json)
    print("--- JSON Decoded Successfully ---")
    print(f"Username: {data['data']['username']}")
    print(f"Is Admin: {'admin' in data['data']['roles']}")
    
    # Mutating Python dict
    data['data']['verified'] = False
    data['data']['last_login'] = "2026-05-25"
    
    # Serializing dict back to formatted JSON
    pretty_json = json.dumps(data, indent=4)
    print("\n--- Modified JSON String ---")
    print(pretty_json)
    
except json.JSONDecodeError as e:
    print(f"Invalid JSON Format: {e}")
Đầu ra thiết bị đầu cuối
--- JSON Decoded Successfully ---
Username: coder_xyz
Is Admin: True

--- Modified JSON String ---
{
    "status": "success",
    "data": {
        "user_id": 9042,
        "username": "coder_xyz",
        "roles": [
            "admin",
            "developer"
        ],
        "verified": false,
        "last_login": "2026-05-25"
    }
}

Triển khai từng bước

  • Đọc cấu hình ứng dụng và tệp thông tin xác thực
  • Phân tích phản hồi từ điểm cuối API REST
  • Lưu trạng thái hoặc cấp độ chương trình trong tiện ích máy tính để bàn

Câu hỏi thường gặp

Sự khác biệt giữa kết xuất và kết xuất trong Python là gì?

`dumps` tuần tự hóa một đối tượng thành định dạng chuỗi JSON, trong khi `dump` ghi luồng JSON được tuần tự hóa trực tiếp vào một đối tượng tệp có thể ghi.

Python xử lý các giá trị JSON null như thế nào?

Bộ giải mã `json` của Python tự động ánh xạ JSON `null` thành `None`, `true` và `false` thành `True` và `False`, đồng thời mảng vào danh sách.

Chủ đề liên quan