Làm việc với dữ liệu JSON trong Python

JSON (JavaScript Object Notation) là một định dạng dữ liệu nhẹ được sử dụng để trao đổi dữ liệu giữa máy chủ và máy khách. Định dạng này thường được sử dụng trong các ứng dụng web để gửi và nhận dữ liệu. Python cung cấp một mô-đun tích hợp có tên là json giúp bạn dễ dàng làm việc với dữ liệu JSON. Bài viết này sẽ hướng dẫn bạn những điều cơ bản về cách làm việc với dữ liệu JSON trong Python, bao gồm đọc, viết và thao tác với các đối tượng JSON.

JSON là gì?

JSON là một định dạng dạng văn bản dễ đọc và dễ viết cho cả con người và máy móc. Nó bao gồm các cặp khóa-giá trị, tương tự như từ điển Python. Một đối tượng JSON điển hình trông như thế này:

{
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "is_student": false,
    "skills": ["Python", "JavaScript", "SQL"]
}

Nhập mô-đun JSON

Module json được bao gồm trong thư viện chuẩn của Python, do đó bạn không cần phải cài đặt bất cứ thứ gì. Chỉ cần import nó vào đầu tập lệnh của bạn:

import json

Đọc dữ liệu JSON

Bạn có thể đọc dữ liệu JSON từ một chuỗi hoặc một tệp. Phương thức json.loads() được sử dụng để phân tích dữ liệu JSON từ một chuỗi, trong khi json.load() được sử dụng để đọc dữ liệu JSON từ một tệp.

Đọc JSON từ một chuỗi

Để đọc JSON từ một chuỗi, hãy sử dụng phương thức json.loads() để chuyển đổi chuỗi JSON thành một từ điển Python.

# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)

print(data)
print(data['name'])  # Output: Alice

Đọc JSON từ một tệp

Để đọc dữ liệu JSON từ một tệp, hãy sử dụng phương thức json.load(). Phương thức này đọc nội dung của tệp và chuyển đổi thành từ điển Python.

# Example of reading JSON from a file
with open('data.json', 'r') as file:
    data = json.load(file)

print(data)

Viết dữ liệu JSON

Bạn có thể ghi dữ liệu JSON vào một chuỗi hoặc một tệp. Phương thức json.dumps() được sử dụng để chuyển đổi một đối tượng Python thành một chuỗi JSON, trong khi json.dump() được sử dụng để ghi dữ liệu JSON vào một tệp.

Viết JSON thành một chuỗi

Để ghi JSON vào một chuỗi, hãy sử dụng phương thức json.dumps() để chuyển đổi một từ điển Python thành chuỗi JSON.

# Example of writing JSON to a string
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

json_string = json.dumps(data)
print(json_string)

Viết JSON vào một tệp

Để ghi dữ liệu JSON vào một tệp, hãy sử dụng phương thức json.dump(). Phương thức này lấy một đối tượng Python và ghi vào một tệp ở định dạng JSON.

# Example of writing JSON to a file
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

with open('output.json', 'w') as file:
    json.dump(data, file)

In đẹp dữ liệu JSON

Phương thức json.dumps() có một số tham số cho phép bạn định dạng dữ liệu JSON để dễ đọc hơn. Tham số indent chỉ định số khoảng trắng để sử dụng cho thụt lề, trong khi tham số sort_keys ​​sắp xếp các khóa trong đầu ra.

# Example of pretty-printing JSON data
data = {
    "name": "Charlie",
    "age": 35,
    "city": "Chicago"
}

json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)

Chuyển đổi giữa các kiểu dữ liệu JSON và Python

Mô-đun json của Python có thể xử lý các kiểu dữ liệu khác nhau và chuyển đổi chúng giữa JSON và Python. Sau đây là một tài liệu tham khảo nhanh:

  • dict (Python) tới object (JSON)
  • list (Python) thành array (JSON)
  • str (Python) thành string (JSON)
  • int, float (Python) tới number (JSON)
  • Đúng, Sai (Python) thành đúng, sai (JSON)
  • Không có (Python) đến null (JSON)

Xử lý lỗi JSON

Khi làm việc với JSON, lỗi có thể xảy ra do định dạng không đúng hoặc dữ liệu không mong muốn. Mô-đun json đưa ra các ngoại lệ như JSONDecodeError khi gặp phải các vấn đề như vậy. Sử dụng các khối tryexcept để xử lý các lỗi này một cách nhẹ nhàng.

# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"'  # Missing closing brace

try:
    data = json.loads(json_string)
except json.JSONDecodeError as e:
    print(f"Error decoding JSON: {e}")

Phần kết luận

Làm việc với dữ liệu JSON là một kỹ năng cơ bản đối với các nhà phát triển Python, đặc biệt là trong phát triển web và khoa học dữ liệu. Mô-đun json cung cấp các phương pháp dễ sử dụng để đọc, viết và thao tác dữ liệu JSON. Bằng cách thành thạo các kỹ thuật này, bạn có thể xử lý dữ liệu JSON hiệu quả trong các ứng dụng Python của mình.