Làm việc với JSON trong Python

0
997
Bài số 23 trong 26 bài của series Python Không Khó

Trong bài học hôm nay, chúng ta sẽ tìm hiểu về JSON trong Python. Chúng ta sẽ biết về mô-đun JSON trong Python và chuyển đổi đối tượng Python thành dữ liệu JSON và ngược lại. Hơn nữa, chúng ta cũng sẽ tìm hiểu cách định dạng dữ liệu JSON sau khi chuyển đổi đối tượng Python thành JSON.

JSON trong Python là gì?

JSON là từ viết tắt của ký hiệu đối tượng JavaScript. Python có gói tích hợp có tên ‘json’ để hỗ trợ làm việc với JSON trong Python.  JSON về cơ bản được sử dụng để mã hóa và giải mã dữ liệu. Quá trình mã hóa dữ liệu JSON được gọi là tuần tự hóa vì nó liên quan đến việc chuyển đổi dữ liệu thành một chuỗi byte có thể được lưu trữ và truyền giữa các máy chủ và ứng dụng web. Vì tuần tự hóa là mã hóa dữ liệu, chúng ta có thể đoán thuật ngữ được sử dụng để giải mã.

Vd: JSON được cho là có thể đọc được bởi bất kỳ ai sử dụng ngôn ngữ kiểu C và Python là ngôn ngữ kiểu C.

Như bạn có thể thấy, JSON hỗ trợ các kiểu nguyên thủy, như chuỗi và số, cũng như các danh sách và đối tượng lồng nhau. Nó trông giống như một từ điển Python.

Python hỗ trợ JSON nguyên bản!

Python đi kèm với gói tích hợp được gọi là json, thư viện này cung cấp cho chũng ta những công cụ để làm việc cũng như để mã hóa và giải mã dữ liệu JSON.

Các phương thức sau đây có sẵn trong mô-đun JSON

  Phương thứcMiêu tả
  dumps()Mã hóa thành các đối tượng JSON
  dump()Mã hóa chuỗi được ghi trong tệp
  loads()Giải mã chuỗi JSON
  load()Giải mã trong khi đọc tệp JSON

Mã hóa dữ liệu Python sang JSON

Quá trình mã hóa JSON thường được gọi là tuần tự hóa . Thuật ngữ này đề cập đến việc chuyển đổi dữ liệu thành một chuỗi byte (do đó nối tiếp ) sẽ được lưu trữ hoặc truyền qua mạng

Các đối tượng Python được dịch sang JSON theo một chuyển đổi khá trực quan.

PythonJSON
dictobject
listtuplearray
strstring
intlong,floatnumber
Truetrue
Falsefalse
Nonenull

Ví dụ về mã hóa dữ liệu

Ví dụ bạn đang làm việc với một đối tượng Python giống như thế này:

Sử dụng context manager mà mình đã nhắc tới trong phần mở file ở bài trước, bạn có thể tạo một tệp được gọi data_file.jsonvà mở nó trong chế độ ghi. (Các tệp JSON kết thúc với đuôi .json).

Lưu ý rằng dump()có hai đối số vị trí: (1) đối tượng dữ liệu sẽ được mã hóa và (2) đối tượng giống như tệp mà các byte sẽ được ghi.

 

json trong python

Hoặc nếu bạn muốn làm việc luôn với JSON mà không cần tạo ra một file riêng bạn có thể dử dụng dumps(). dumps() sẽ  ghi dữ liệu vào một đối tượng str .

Một số đối số thường dùng

Indent

Bạn có thể sử dụng indent để chỉ định kích thước thụt đầu dòng. Kiểm tra sự khác biệt cho chính bạn bằng cách sử dụng data mà chúng tôi đã nói ở trên và chạy các lệnh sau

kết quả:

Sort keys

Nếu sort_keys là đúng (mặc định False:), thì đầu ra của từ điển sẽ được sắp xếp theo khóa.

kêt quả:

Giải nén JSON

Trong thư viện json, bạn sẽ dùng load()và loads()để biến dữ liệu được mã hóa JSON thành các đối tượng Python.

Cũng giống như mã hóa, có một bảng chuyển đổi đơn giản:

JSONPython
objectdict
arraylist
stringstr
number (int)int
number (thực tế)float
trueTrue
falseFalse
nullNone

 

Chuyển đổi này không phải là một nghịch đảo với bảng mã hóa. Điều đó về cơ bản có nghĩa là nếu bạn mã hóa một đối tượng và sau đó giải mã lại nó sau đó, bạn có thể không nhận được chính xác cùng một đối tượng.

ví dụ đơn giản nhất sẽ là mã hóa một tuplevà lấy lại một listsau khi giải mã:

kết quả

Bạn có thể thấy khi mã hóa một tuple thì ta lại được một str, còn sau khi giải mã nó lại được một list.

Một ví dụ giải mã đơn giản

Lần này, chúng ta sẽ giải mã file data.json mà lúc nãy chúng ta đã mà hóa nó. Bạn vẫn sẽ sử dụng context manager, nhưng lần này bạn sẽ mở ra data.jsonchế độ đọc hiện có .

kết quả:

 

 

Các bài viết trong SeriesBài trước: Xử lí file trong pythonBài sau: Tìm hiểu về Module os trong Python
0 0 vote
Đánh giá bài viết
Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments