PHP
Python

Trang chủ

Cách xử lý JSON trong Python đơn giản và hiệu quả

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
26/03/2025
22 phút đọc
Theo dõi Vietnix trên

Cách xử lý JSON trong Python đơn giản và hiệu quả

JSON (JavaScript Object Notation) là một định dạng dữ liệu phổ biến, được sử dụng rộng rãi để trao đổi dữ liệu giữa các ứng dụng. Trong Python, việc xử lý JSON trở nên đơn giản nhờ các thư viện tích hợp sẵn, giúp đọc, ghi và chuyển đổi dữ liệu dễ dàng. Bài viết này sẽ hướng dẫn bạn cách làm việc với JSON trong Python một cách hiệu quả, từ cơ bản đến nâng cao.

Những điểm chính

  • Khái niệm: Hiểu được JSON trong Python là gì và cách Python hỗ trợ xử lý JSON hiệu quả.
  • Tuần tự hóa và giải tuần tự hóa JSON: Biết cách chuyển đổi dữ liệu Python thành JSON và ngược lại để sử dụng trong các ứng dụng thực tế.
  • Xử lý JSON nâng cao: Nắm được cách làm việc với JSONEncoderJSONDecoder để mở rộng khả năng xử lý dữ liệu JSON.
  • Phương pháp module JSON của Python: Hiểu rõ các chức năng chính, cách mã hóa/giải mã JSON, cùng các hàm tiện ích hỗ trợ xử lý JSON mạnh mẽ.
  • Thuộc tính trong module json: Biết được các thuộc tính quan trọng giúp kiểm soát quá trình xử lý JSON trong Python.
  • Vietnix – Nhà cung cấp dịch vụ lưu trữ tốc độ cao: Tìm hiểu về Vietnix – đơn vị cung cấp dịch vụ hosting, VPS, máy chủ uy tín, đảm bảo hiệu suất vượt trội.
  • Câu hỏi thường gặp: Giải đáp những thắc mắc phổ biến liên quan đến cách sử dụng JSON trong Python, giúp bạn ứng dụng JSON hiệu quả hơn.

JSON trong Python là gì?

JSON (JavaScript Object Notation) là một định dạng dữ liệu phổ biến, được sử dụng để trao đổi thông tin giữa các hệ thống. Trong Python, module json cung cấp các hàm giúp chuyển đổi dữ liệu giữa JSON và các object Python một cách dễ dàng. Cụ thể, bạn có thể tuần tự hóa (serialize) object Python thành chuỗi JSON và giải tuần tự hóa (deserialize) chuỗi JSON để sử dụng lại trong Python. JSON có cấu trúc đơn giản, dễ đọc với con người và dễ xử lý bằng máy tính. Do đó, nó thường được dùng để truyền dữ liệu giữa máy chủ và ứng dụng web dưới dạng văn bản.

Module JSON trong Python cung cấp các hàm giúp chuyển đổi dữ liệu giữa JSON và các object Python một cách dễ dàng
Module JSON trong Python cung cấp các hàm giúp chuyển đổi dữ liệu giữa JSON và các object Python một cách dễ dàng

Tuần tự hóa JSON

Tuần tự hóa JSON (JSON serialization) là quá trình chuyển đổi một đối tượng Python thành định dạng JSON. Điều này rất hữu ích khi cần lưu trữ hoặc truyền dữ liệu một cách dễ dàng, đồng thời có thể khôi phục lại dữ liệu về dạng ban đầu khi cần thiết. Python cung cấp module json để xử lý tuần tự hóa và giải tuần tự hóa JSON. Để thực hiện tuần tự hóa, bạn có thể sử dụng phương thức json.dumps(). Các kiểu dữ liệu Python có thể được chuyển đổi sang JSON bao gồm:

  • dict (từ điển).
  • list (danh sách).
  • tuple (bộ).
  • str (chuỗi).
  • int (số nguyên).
  • float (số thực).
  • bool (giá trị đúng/sai).
  • None (giá trị rỗng).

Dưới đây là một ví dụ về việc tuần tự hóa một đối tượng Python sang JSON một cách trực quan nhất:

import json
# Dữ liệu về dịch vụ của Vietnix
service_info = {
    "service": "VPS",
    "provider": "Vietnix",
    "uptime": 99.99,
    "support": True
}
# Chuyển đổi sang JSON
json_string = json.dumps(service_info, indent=4)
print(json_string)
  • Kết quả như sau:

{
“service”: “VPS”,
“provider”: “Vietnix”,
“uptime”: 99.99,
“support”: true
}

Giải tuần tự hóa JSON

Giải tuần tự hóa JSON (JSON deserialization) là quá trình chuyển đổi một chuỗi JSON thành một đối tượng Python. Đây là bước quan trọng để đọc và xử lý dữ liệu được truyền tải hoặc lưu trữ dưới định dạng JSON. Trong Python, bạn có thể sử dụng phương thức json.loads() để giải tuần tự hóa dữ liệu JSON từ chuỗi và json.load() để giải tuần tự hóa dữ liệu JSON từ tệp.

Ví dụ 1: Giải tuần tự hóa chuỗi JSON thành object Python

Giả sử, bạn cần xử lý dữ liệu cấu hình máy chủ được lưu dưới dạng JSON. Dưới đây là cách chuyển đổi chuỗi JSON thành từ điển Python bằng phương thức json.loads():

import json
# JSON string chứa thông tin máy chủ
json_string = '{"server_name": "Vietnix VPS", "cpu": "4 vCPU", "ram": "8GB", "storage": "160GB NVMe", "location": {"country": "Vietnam", "city": "Ho Chi Minh"}}'
# Giải tuần tự hóa chuỗi JSON thành đối tượng Python
server_info = json.loads(json_string)
print(server_info)
  • Kết quả như sau:

{
‘server_name’: ‘Vietnix VPS’,
‘cpu’: ‘4 vCPU’,
‘ram’: ‘8GB’,
‘storage’: ‘160GB NVMe’,
‘location’: {‘country’: ‘Vietnam’, ‘city’: ‘Ho Chi Minh’}
}

Ví dụ 2: Giải tuần tự hóa JSON từ tệp

Nếu dữ liệu máy chủ được lưu trong tệp server_config.json, bạn có thể sử dụng json.load() để đọc và chuyển đổi nó thành đối tượng Python:

import json
# Đọc và giải tuần tự hóa dữ liệu từ tệp JSON
with open("server_config.json", "r") as f:
    server_info = json.load(f)
print(server_info)

Xử lý JSON nâng cao

Khi làm việc với JSON, đôi khi bạn cần xử lý các đối tượng có cấu trúc đặc biệt, chẳng hạn như các lớp tùy chỉnh hoặc kiểu dữ liệu không được hỗ trợ trực tiếp bởi JSON. Trong những trường hợp này, bạn có thể định nghĩa các hàm tùy chỉnh để xử lý việc giải mã dữ liệu bằng cách sử dụng tham số object_hook của phương thức json.loads() hoặc json.load().

Giả sử, bạn có một hệ thống quản lý khách hàng, trong đó lưu trữ thông tin ngày đăng ký của khách hàng dưới dạng chuỗi ISO 8601. Khi tải dữ liệu từ JSON, bạn muốn tự động chuyển đổi trường ngày đăng ký thành đối tượng datetime để dễ dàng xử lý. Bạn có thể sử dụng một hàm giải mã tùy chỉnh như sau:

import json
from datetime import datetime
# Hàm giải mã tùy chỉnh
def custom_deserializer(dct):
    if 'registration_date' in dct:
        dct['registration_date'] = datetime.fromisoformat(dct['registration_date'])
    return dct
# Chuỗi JSON chứa ngày đăng ký của khách hàng
json_string = '{"customer": "Nguyen Van A", "registration_date": "2024-02-25T14:30:00"}'
# Giải mã JSON với hàm tùy chỉnh
customer_data = json.loads(json_string, object_hook=custom_deserializer)
print(customer_data)
  • Kết quả như sau:

{‘customer’: ‘Nguyen Van A’, ‘registration_date’: datetime.datetime(2024, 2, 25, 14, 30)}

JSONEncoder Class

Lớp JSONEncoder trong Python được sử dụng để mã hóa các cấu trúc dữ liệu Python thành định dạng JSON. Mỗi kiểu dữ liệu trong Python sẽ được chuyển đổi sang kiểu dữ liệu tương ứng trong JSON theo bảng sau:

PythonJSON
dictobject
list, tuplearray
strstring
int, float, int- & float-derived Enumsnumber
Truetrue
Falsefalse
Nonenull

Lớp JSONEncoder được khởi tạo bằng cách sử dụng constructor JSONEncoder(). Các phương thức quan trọng được định nghĩa trong lớp này bao gồm:

  • encode(obj) – Chuyển đổi một đối tượng Python thành chuỗi JSON.
  • iterencode(obj) – Mã hóa đối tượng và trả về một iterator, giúp tạo từng phần của chuỗi JSON theo từng bước.
  • indent – Xác định mức thụt dòng của chuỗi JSON được mã hóa.
  • sort_keys – Nếu đặt thành True, các khóa trong đối tượng JSON sẽ được sắp xếp theo thứ tự.
  • check_circular – Nếu đặt thành True, trình mã hóa sẽ kiểm tra các tham chiếu vòng lặp trong các đối tượng kiểu container.

Dưới đây là ví dụ về cách sử dụng iterencode() để mã hóa một danh sách Python thành chuỗi JSON:

import json
data = ['Vietnix', {'services': ('Hosting', 'VPS', 'Firewall')}]
e = json.JSONEncoder()
# Sử dụng iterencode() để mã hóa từng phần của dữ liệu
for obj in e.iterencode(data):
    print(obj)
  • Kết quả như sau:

[“Vietnix”, { “services” : [“Hosting”, “VPS”, “Firewall”] }]

JSONDecoder class

Lớp JSONDecoder trong Python được sử dụng để giải mã một chuỗi JSON thành cấu trúc dữ liệu Python. Phương thức chính của lớp này là decode(), giúp chuyển đổi chuỗi JSON về dạng dữ liệu Python tương ứng như danh sách, từ điển, số nguyên, số thực,… Dưới đây là một ví dụ minh họa cách JSONEncoder mã hóa một danh sách Python thành chuỗi JSON và sau đó JSONDecoder giải mã chuỗi JSON đó về danh sách Python:

import json
# Dữ liệu mẫu
data = ['Vietnix', {'services': ('Hosting', 'VPS', 'Firewall')}]
# Mã hóa dữ liệu thành chuỗi JSON
encoder = json.JSONEncoder()
json_string = encoder.encode(data)
# Giải mã chuỗi JSON về dạng Python
decoder = json.JSONDecoder()
decoded_obj = decoder.decode(json_string)
print(decoded_obj, type(decoded_obj))

Kết quả như sau:

[‘Vietnix’, {‘services’: [‘Hosting’, ‘VPS’, ‘Firewall’]}] <class ‘list’>

Phương pháp module JSON của Python

Module json trong Python cung cấp các phương thức để làm việc với dữ liệu JSON (JavaScript Object Notation). Nó cho phép chuyển đổi (serialize) các đối tượng Python thành chuỗi JSON và ngược lại, chuyển đổi (deserialize) dữ liệu JSON thành đối tượng Python. Đây là một định dạng trao đổi dữ liệu phổ biến, được sử dụng rộng rãi trong các ứng dụng web, API và lưu trữ dữ liệu.

Chức năng cốt lõi

Module json trong Python cung cấp các chức năng quan trọng để xử lý dữ liệu JSON, bao gồm chuyển đổi giữa đối tượng Python và dữ liệu JSON. Dưới đây là các chức năng chính:

  • json.dump(): Chuyển đổi một đối tượng Python thành JSON và ghi trực tiếp vào tệp.
  • json.dumps(): Chuyển đổi một đối tượng Python thành chuỗi JSON.
  • json.load(): Đọc dữ liệu JSON từ một tệp và chuyển đổi thành đối tượng Python.
  • json.loads(): Chuyển đổi chuỗi JSON thành đối tượng Python.

Phương pháp mã hóa JSON

Trong Python, việc chuyển đổi các đối tượng sang định dạng JSON được thực hiện thông qua các phương thức của lớp json.JSONEncoder. Dưới đây là một số phương thức chính của lớp này:

  • json.JSONEncoder: Lớp mã hóa dùng để chuyển đổi các đối tượng Python sang định dạng JSON.
  • json.JSONEncoder.encode(): Mã hóa một đối tượng Python thành chuỗi JSON.
  • json.JSONEncoder.iterencode(): Mã hóa đối tượng Python sang JSON nhưng theo kiểu iterator, giúp xử lý dữ liệu lớn mà không cần tải toàn bộ vào bộ nhớ.
  • json.JSONEncoder.default(): Phương thức có thể được ghi đè để xử lý các đối tượng không thể tuần tự hóa theo mặc định.
Tìm hiểu phương pháp mã hóa JSON
Tìm hiểu phương pháp mã hóa JSON

Phương pháp giải mã JSON

Giải mã JSON là quá trình chuyển đổi dữ liệu JSON thành các đối tượng Python để dễ dàng xử lý. Trong Python, thư viện json cung cấp các phương thức giúp thực hiện quá trình này một cách hiệu quả.

  • json.JSONDecoder: Lớp JSONDecoder được sử dụng để chuyển đổi dữ liệu JSON thành đối tượng Python. Đây là công cụ chính giúp phân tích cú pháp JSON trong Python.
  • json.JSONDecoder.decode(): Phương thức decode() cho phép chuyển đổi một chuỗi JSON thành đối tượng Python.
  • json.JSONDecoder.raw_decode():Phương thức raw_decode() hoạt động tương tự decode(), nhưng cho phép xử lý lỗi bằng cách cung cấp thông tin vị trí chuỗi JSON không hợp lệ. Điều này hữu ích khi làm việc với dữ liệu JSON có thể bị cắt xén hoặc không đầy đủ.

Các hàm tiện ích

Các hàm tiện ích giúp xử lý dữ liệu JSON trong Python một cách dễ dàng và hiệu quả. Chúng hỗ trợ việc định dạng và hiển thị dữ liệu theo cách trực quan hơn, giúp người dùng dễ dàng đọc và phân tích:

  • json.tool: Hàm json.tool cung cấp một công cụ dòng lệnh giúp định dạng JSON, làm cho dữ liệu dễ đọc hơn. Điều này đặc biệt hữu ích khi làm việc với API hoặc kiểm tra cấu trúc JSON của một tệp dữ liệu.

Phương pháp Dunder (Magic) trong JSONEncoder

Trong Python, các phương pháp Dunder (viết tắt của “Double Underscore”), hay còn gọi là phương pháp Magic, giúp định nghĩa hành vi đặc biệt cho các lớp. Đối với JSONEncoder trong module json, các phương pháp này cho phép tùy chỉnh quá trình mã hóa dữ liệu thành JSON theo nhu cầu cụ thể:

  • json.JSONEncoder.__init__: Phương thức khởi tạo __init__ cho phép cấu hình các cài đặt tùy chỉnh khi khởi tạo đối tượng JSONEncoder. Điều này giúp lập trình viên định nghĩa cách thức dữ liệu sẽ được chuyển đổi thành JSON, bao gồm việc xử lý kiểu dữ liệu không hỗ trợ sẵn trong JSON.
  • json.JSONEncoder.__repr__: Phương thức __repr__ trả về chuỗi đại diện của đối tượng JSONEncoder. Chuỗi này thường được sử dụng để mô tả đối tượng theo cách giúp lập trình viên dễ dàng kiểm tra thông tin và debug trong quá trình phát triển.
  • json.JSONEncoder.__str__: Phương thức __str__ trả về chuỗi mô tả đối tượng JSONEncoder ở dạng dễ đọc hơn. Điều này có thể hữu ích khi cần hiển thị thông tin của encoder dưới dạng chuỗi, chẳng hạn trong quá trình logging hoặc giao tiếp với API.
Phương pháp Dunder (Magic) trong JSONEncoder
Phương pháp Dunder (Magic) trong JSONEncoder

Phương pháp Dunder (Magic) trong JSONDecoder

Các phương pháp Dunder (Magic) trong lớp JSONDecoder của Python giúp tùy chỉnh hành vi giải mã JSON theo nhu cầu cụ thể. Dưới đây là các phương pháp quan trọng:

  • json.JSONDecoder.__init__: Đây là phương thức khởi tạo của JSONDecoder, cho phép thiết lập các cài đặt tùy chỉnh khi tạo đối tượng. Bạn có thể chỉ định cách xử lý các giá trị số, đối tượng không xác định hoặc định dạng ngày tháng khi giải mã JSON.
  • json.JSONDecoder.__repr__: Phương thức này trả về chuỗi đại diện của đối tượng JSONDecoder, giúp kiểm tra nhanh trạng thái của nó khi gỡ lỗi hoặc ghi log.
  • json.JSONDecoder.__str__: Trả về chuỗi biểu diễn của JSONDecoder, giúp cung cấp thông tin dễ đọc hơn về đối tượng khi in ra màn hình.

Các hàm trong json.encoder (Các hàm tiện ích nội bộ)

Module json.encoder trong Python chứa các hàm tiện ích nội bộ giúp xử lý việc mã hóa dữ liệu thành định dạng JSON. Dưới đây là một số hàm quan trọng:

  • json.encoder.encode_basestring(): Mã hóa một chuỗi thành định dạng JSON hợp lệ, bao gồm xử lý các ký tự đặc biệt như dấu nháy kép (") và ký tự xuống dòng.
  • json.encoder.encode_basestring_ascii(): Tương tự encode_basestring(), nhưng đảm bảo đầu ra chỉ chứa ký tự ASCII, giúp tăng tính tương thích trên nhiều hệ thống.

Các hàm trong json.decoder (Các hàm tiện ích nội bộ)

Module json.decoder trong Python cung cấp các hàm nội bộ hỗ trợ quá trình giải mã JSON. Các hàm này không thường được sử dụng trực tiếp mà chủ yếu phục vụ cho quá trình xử lý dữ liệu JSON trong nền tảng.

  • json.decoder.scanstring(): Quét và trích xuất chuỗi từ dữ liệu JSON, xử lý các ký tự đặc biệt và dấu thoát (\).
  • json.decoder.JSONArray(): Hỗ trợ giải mã mảng JSON, đảm bảo dữ liệu được phân tích đúng cấu trúc.
Các hàm trong json.decoder (Các hàm tiện ích nội bộ)
Các hàm trong json.decoder (Các hàm tiện ích nội bộ)

Thuộc tính trong module JSON

Module json trong Python cung cấp một số thuộc tính quan trọng giúp kiểm soát quá trình mã hóa và giải mã dữ liệu JSON. Dưới đây là các thuộc tính chính trong module này:

  • json.decoder: Chứa các lớp và hàm liên quan đến quá trình giải mã (decode) JSON. Điều này hữu ích khi cần chuyển đổi dữ liệu JSON thành kiểu dữ liệu Python.
  • json.encoder: Bao gồm các lớp và hàm hỗ trợ mã hóa (encode) dữ liệu Python thành chuỗi JSON. Điều này giúp chuẩn bị dữ liệu trước khi gửi đến API hoặc lưu trữ dưới dạng JSON.
  • json.__all__: Danh sách các thuộc tính được xuất khi sử dụng from json import *. Điều này giúp xác định những thành phần nào của module json có thể được truy cập theo cách này.
  • json.__version__: Chứa số phiên bản của module json, giúp kiểm tra phiên bản hiện tại đang được sử dụng.
Tìm hiểu các yếu tố của JSON trong Python
Tìm hiểu các yếu tố của JSON trong Python

Thuộc tính trong json.encoder

Module json.encoder trong Python cung cấp các thuộc tính hỗ trợ kiểm soát quá trình mã hóa dữ liệu JSON:

  • json.encoder.FLOAT_REPR – Kiểm soát cách biểu diễn số thực khi chuyển đổi dữ liệu sang JSON. Thuộc tính này không còn được sử dụng rộng rãi trong các phiên bản Python mới.
  • json.encoder._make_iterencode() – Hàm nội bộ dùng để tạo trình mã hóa JSON dựa trên iterator, không được khuyến nghị sử dụng trực tiếp.

Thuộc tính trong json.decoder

Module json.decoder trong Python cung cấp nhiều thuộc tính hỗ trợ quá trình giải mã dữ liệu JSON thành đối tượng Python. Dưới đây là các thuộc tính quan trọng của json.decoder:

STTThuộc tínhMô tả
1json.decoder.JSONDecoderLớp giúp chuyển đổi dữ liệu JSON thành các đối tượng Python.
2json.decoder.JSONDecoder.object_hookHàm cho phép tùy chỉnh cách xử lý và biến đổi các đối tượng JSON khi giải mã.
3json.decoder.JSONDecoder.parse_floatHàm dùng để tùy chỉnh cách giải mã số thực (float) trong JSON.
4json.decoder.JSONDecoder.parse_intHàm giúp tùy chỉnh cách chuyển đổi số nguyên từ JSON sang Python.
5json.decoder.JSONDecoder.parse_constantHàm xử lý các giá trị hằng số như True, False, và None trong JSON.
6json.decoder.JSONDecoder.object_pairs_hookHàm cho phép kiểm soát cách xử lý các cặp khóa-giá trị trong JSON.

Thuộc tính trong JSON (Dùng cho mục đích nội bộ)

Trong module json của Python, có một số thuộc tính được sử dụng nội bộ để xử lý dữ liệu JSON. Những thuộc tính này không được khuyến nghị sử dụng trực tiếp trong mã nguồn vì chúng có thể thay đổi trong các phiên bản Python tương lai:

  • json._default_decoder: Đây là bộ giải mã JSON mặc định, được sử dụng để chuyển đổi dữ liệu JSON thành đối tượng Python.
  • json._default_encoder: Đây là bộ mã hóa JSON mặc định, giúp chuyển đổi các đối tượng Python thành chuỗi JSON.

Vietnix – Nhà cung cấp dịch vụ lưu trữ tốc độ cao

Vietnix là nhà cung cấp dịch vụ web hostingVPSthuê máy chủ và domain chất lượng cao. Với hạ tầng mạnh mẽ và đội ngũ kỹ thuật hỗ trợ 24/7, Vietnix cam kết mang đến tốc độ truy cập nhanh, giảm thiểu downtime và đảm bảo an toàn dữ liệu. Hơn 80.000 khách hàng đã tin tưởng sử dụng dịch vụ của Vietnix để phát triển website và ứng dụng. Liên hệ ngay để được tư vấn giải pháp phù hợp dành cho bạn!

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 18001093
  • Email: sales@vietnix.com.vn 
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.

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

Có thể sử dụng JSON để truyền dữ liệu giữa các tiến trình (process) trong Python không? Nếu có, cách tốt nhất để làm điều đó là gì?

Có thể dùng JSON để truyền dữ liệu giữa các tiến trình, tùy vào nhu cầu mà chọn phương pháp phù hợp:
multiprocessing.Queue / Pipe – Giao tiếp giữa tiến trình trên cùng một máy.
Tệp tạm (tempfile) – Khi không cần truyền ngay lập tức.
Socket / ZeroMQ – Kết nối tiến trình trên các máy khác nhau.
Redis / Message Queue – Xử lý lượng lớn dữ liệu JSON hiệu quả.

Làm thế nào để tạo một JSON encoder tùy chỉnh trong Python để hỗ trợ các kiểu dữ liệu phức tạp?

Python cung cấp json.JSONEncoder để tạo bộ mã hóa JSON tùy chỉnh khi cần xử lý các kiểu dữ liệu không hỗ trợ mặc định, như datetime, Decimal, hoặc các đối tượng tùy chỉnh.
Các bước thực hiện:
Kế thừa json.JSONEncoder và ghi đè phương thức default() để chuyển đổi kiểu dữ liệu phức tạp thành định dạng có thể mã hóa được.
Sử dụng json.dumps() với tham số cls=<CustomEncoder> để áp dụng bộ mã hóa mới.
– Nếu cần, có thể thêm logic để chuyển đổi lại dữ liệu khi giải mã JSON.

Có cách nào để đảm bảo tính toàn vẹn của dữ liệu khi đọc/ghi JSON trong Python không?

Cách đảm bảo tính toàn vẹn của dữ liệu khi đọc/ghi JSON trong Python
Dùng hash/checksum (MD5, SHA-256) để kiểm tra dữ liệu có bị thay đổi hay không.
Sử dụng file locking để ngăn chặn xung đột khi nhiều tiến trình truy cập tệp JSON.
Ghi dữ liệu an toàn bằng tệp tạm thời, sau đó đổi tên để tránh mất dữ liệu do lỗi ghi.
Xác thực JSON bằng JSON Schema để đảm bảo dữ liệu có đúng cấu trúc mong muốn.
Sao lưu tệp JSON trước khi ghi để có thể khôi phục khi cần.

JSON có thể dùng để tối ưu hóa việc lưu trữ dữ liệu cấu hình trong các ứng dụng Python không? Nếu có, có cách nào tốt hơn không?

JSON là lựa chọn phổ biến để lưu trữ cấu hình trong Python nhờ tính đơn giản, dễ đọc và linh hoạt. Tuy nhiên, có một số phương án thay thế tốt hơn tùy vào nhu cầu:
YAML: Dễ đọc hơn JSON, phù hợp với cấu hình phức tạp.
TOML: Được ưa chuộng trong Python, đơn giản và trực quan.
INI: Thích hợp cho cấu hình nhẹ, dạng khóa-giá trị.
SQLite/Redis: Dành cho cấu hình động, yêu cầu đồng bộ nhanh.

Lời kết

JSON là một định dạng dữ liệu phổ biến, giúp trao đổi thông tin dễ dàng giữa các ứng dụng. Trong Python, thư viện json cung cấp các phương thức mạnh mẽ để đọc, ghi và xử lý JSON một cách đơn giản. Bằng cách nắm vững các thao tác cơ bản như chuyển đổi dữ liệu giữa JSON và Python, tùy chỉnh encoder/decoder và xử lý lỗi, bạn có thể làm việc với JSON một cách hiệu quả. Cảm ơn bạn đã theo dõi bài viết!

Mọi người cũng xem:

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn