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ớiobject
(JSON)list
(Python) thànharray
(JSON)str
(Python) thànhstring
(JSON)int
,float
(Python) tớinumber
(JSON)Đúng
,Sai
(Python) thànhđúng
,sai
(JSON)Không có
(Python) đếnnull
(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 try
và except
để 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.