JSON là định dạng dữ liệu phổ biến lưu trữ dữ liệu có cấu trúc.
Khi xây ứng dụng Python, bạn quyết định dùng JSON app. Ví dụ, đọc dữ liệu file JSON, hoặc ghi dữ liệu định dạng JSON ra file.
Hướng dẫn này phân tích cơ bản định dạng JSON, cách dùng module json Python, và làm việc JSON Python. Đọc xong, bạn chuyên gia dùng JSON chương trình Python!
JSON Là Gì?
JSON, viết tắt JavaScript Object Notation, định dạng dữ liệu lưu trữ dữ liệu có cấu trúc.
Thường, JSON dùng gửi dữ liệu đến/từ server ứng dụng web. Bạn thấy nhiều API như Fitbit API, Google Maps API trả dữ liệu JSON.
Vì JSON dữ liệu chuẩn hóa, có cấu trúc, dễ đọc.
Ví dụ bản ghi JSON Python:
{
"name": "James Smith",
"id": 202,
"probation": false
}
Bản ghi lưu ba khóa (key), bên trái dấu hai chấm (:), và ba giá trị (value), bên phải dấu hai chấm. Mỗi khóa gắn giá trị.
Định dạng JSON không nhầm lẫn với dictionary. Mặc dù trông giống dictionary, JSON là định dạng dữ liệu, dictionary là cấu trúc dữ liệu.
Nghĩa là, muốn lưu JSON dictionary, chuyển dictionary; muốn lưu dictionary JSON, chuyển JSON.
Import json Python
Trước làm việc JSON object Python, nhập module json Python. Module bao gồm hàm làm việc JSON.
Nhập module json, dùng câu lệnh:
import json
Đã nhập JSON module, bắt đầu làm việc hàm.
Parse JSON Python (Phân Tích JSON)
Một hàm quan trọng làm việc JSON là parse JSON thành dictionary.
Parse JSON dictionary, dùng json.loads().
json.loads() nhận một tham số: chuỗi JSON chuyển dictionary.
Giả sử có chuỗi JSON lưu thông tin dự án coder phân công team kỹ thuật. Muốn chuyển chuỗi JSON dictionary. Làm bằng mã:
import json
employee = "{'name': 'Linda Richardson', 'projects': ['Directory', 'Homepage']}"
employee_dictionary = json.loads(employee)
print(employee_dictionary)
print(employee_dictionary["name"])
Mã trả về:
{'name': 'Linda Richardson', 'projects': ['Directory', 'Homepage']}
Linda Richardson
Phân tích mã. Đầu, nhập json module. Sau, khai báo chuỗi employee lưu bản ghi nhân viên cấu trúc JSON.
Tiếp, dùng json.loads() chuyển employee string JSON. Sau, in dictionary mới bảng điều khiển. Cũng in giá trị khóa name bảng điều khiển.
Như thấy, dictionary trông giống chuỗi JSON. Nhưng, dữ liệu lưu dictionary. Biết vì in giá trị khóa "name", "Linda Richardson" in bảng điều khiển.
Chuyển Dictionary Thành Chuỗi JSON
Làm việc dictionary, muốn chuyển chuỗi JSON.
Thao tác phổ biến vì lưu giá trị JSON file, cần định dạng chuỗi. Chuyển dictionary JSON, dùng json.dumps().
Giả sử chuyển dictionary thông tin nhân viên chuỗi JSON. Làm bằng mã:
import json
employee = {
"name": "Linda Richardson",
"id": 107,
"probation": false,
"department": "Sales"
}
employee_json = json.dumps(employee)
print(employee_json)
Mã trả về:
'{"name": "Linda Richardson", "id": 107, "probation": false, "department": "Sales"}'
Mặc dù đầu ra trông giống dictionary gốc, dictionary giờ lưu chuỗi.
Định Dạng Chuỗi JSON
Phương thức json.dumps() có tham số làm dễ đọc chuỗi cuối tạo ra.
Tham số indent cho phép định nghĩa số thụt lề xuất hiện chuỗi JSON cuối. Muốn 4 thụt lề mỗi dòng JSON. Làm bằng json.dumps():
employee_json = json.dumps(employee, indent=4)
Câu lệnh, kết hợp ví dụ trước, trả về:
{
"name": "Linda Richardson",
"id": 107,
"probation": false,
"department": "Sales"
}
Bạn cũng thay bộ phân tách (separators) dữ liệu JSON. Giá trị mặc định ", " và ": ", nghĩa là mọi đối tượng tách dấu phẩy, khóa giá trị tách hai chấm.
Giả sử muốn khóa giá trị tách dấu bằng (=), thụt lề 4. Làm bằng câu lệnh:
employee_json = json.dumps(employee, indent=4, separators=(", ", " = "))
Mã trả về:
{
"name" = "Linda Richardson",
"id" = 107,
"probation" = false,
"department" = "Sales"
}
Như thấy, mọi khóa giá trị JSON tách dấu bằng.
Đọc File JSON
Đọc file JSON Python, dùng json.load(). Phương thức nhận một tham số: file object đọc chương trình.
Giả sử file employee.json muốn tải chương trình. Nội dung file:
{
"name": "Linda Richardson",
"id": 107,
"probation": false
}
Làm bằng mã:
import json
with open('employee.json') as final_file:
employee = json.load(final_file)
print(employee)
Mã trả về:
{"name": "Linda Richardson", "id": 107, "probation": false}
Mã đầu nhập json library. Sau, dùng with đọc employee.json. Dùng json.load() chuyển nội dung file, lưu file, dictionary. Sau, in giá trị dictionary.
Ghi JSON Ra File
Dùng json.dump() ghi JSON file Python.
json.dump() nhận hai tham số: dictionary ghi file, và file object ghi dictionary.
Giả sử lưu bản ghi nhân viên JSON file. Tên file linda_employee.json. Làm bằng mã:
import json
employee = {
"name": "Linda Richardson",
"id": 107,
"probation": false,
"department": "Sales"
}
with open('linda_employee.json', 'w') as final_file:
json.dump(employee, final_file)
Phân tích mã. Đầu, nhập json module. Sau, khai báo biến lưu thông tin nhân viên Linda Richardson cấu trúc dictionary.
Tiếp, dùng "with" cờ "w" chuẩn bị file linda_employee.json ghi. Dùng json.dump() chuyển employee dictionary chuỗi JSON lưu final_file.
Chạy chương trình, nội dung employee dictionary ghi linda_employee.json. Nội dung cuối file:
{"name": "Linda Richardson", "id": 107, "probation": false, "department": "Sales"}
Kết Luận
Module json Python cho phép đọc thao tác JSON.
Dùng json module, bạn:
- Đọc JSON từ file
- Chuyển dictionary JSON
- Chuyển JSON dictionary
- Ghi chuỗi JSON file
Hướng dẫn khám phá cách thực hiện tất cả thao tác json module. Bây giờ bạn sẵn sàng làm việc JSON Python như chuyên gia!
Bạn quan tâm học code Python? Tải ứng dụng Career Karma miễn phí hôm nay mở khóa tài nguyên học top và khám phá chương trình đào tạo master Python.