Làm thế nào để bạn xử lý một json trong python?

JSON [JavaScript Object Notation] là một định dạng dữ liệu phổ biến được sử dụng để biểu diễn dữ liệu có cấu trúc. Nó được sử dụng rộng rãi trong các API và ứng dụng web. Trong Python, bạn có thể sử dụng mô-đun

{"name":"James","gender":"male","age":32}
8 tích hợp sẵn cung cấp tất cả các phương thức cần thiết để làm việc với dữ liệu JSON. Bài viết này sẽ đề cập đến JSON là gì và cách phân tích cú pháp, tuần tự hóa, giải tuần tự hóa, mã hóa, giải mã và in đẹp dữ liệu của nó bằng Python

Mục lục

JSON là gì?

JSON

là định dạng trao đổi dữ liệu nhẹ phổ biến lấy cảm hứng từ định dạng cú pháp đối tượng JavaScript được chỉ định bởi RFC 7159 và ECMA-404. Mục đích chính của định dạng JSON là lưu trữ và truyền dữ liệu giữa trình duyệt và máy chủ, nhưng định dạng này được sử dụng rộng rãi bởi các API vi dịch vụ để trao đổi dữ liệu

cú pháp JSON

Làm việc với AWS Lambda bằng Python bằng Boto3

Làm việc với AWS Lambda bằng Python u

Vui lòng bật JavaScript

Làm việc với AWS Lambda bằng Python bằng Boto3

Cú pháp của JSON rất đơn giản. Nó được xây dựng trên hai cấu trúc đơn giản

  • Tập hợp các cặp tên/giá trị [trong Python, chúng được biểu diễn dưới dạng từ điển Python]
  • Một danh sách có thứ tự các giá trị. Trong Python, đây được coi là một danh sách

Dưới đây là ví dụ về các cấu trúc dữ liệu phổ quát đơn giản này

Bộ sưu tập các cặp tên/giá trị

Các cặp tên/giá trị đang tạo thành một đối tượng JSON được mô tả bằng dấu ngoặc nhọn

{"name":"James","gender":"male","age":32}
9. Bạn có thể định nghĩa một đối tượng JSON ở dạng được định dạng

{
    "name": "James",
    "gender": "male"
    "age": 32
}

Hoặc dưới dạng một chuỗi [cả hai đối tượng đều giống nhau]

{"name":"James","gender":"male","age":32}

Một danh sách có thứ tự các giá trị

Danh sách các mục được sắp xếp theo thứ tự được xác định bằng cách sử dụng dấu ngoặc vuông

[
    "Apple",
    "Banana",
    "Cherry"
]
0 và giữ bất kỳ giá trị nào được phân tách bằng dấu phẩy [
[
    "Apple",
    "Banana",
    "Cherry"
]
1]

[
    "Apple",
    "Banana",
    "Cherry"
]

Danh sách các mục được sắp xếp giống nhau có thể được định nghĩa là một chuỗi đơn

["Apple","Banana","Cherry"]

ràng buộc JSON

Định dạng JSON có một số ràng buộc

  • Các cặp giá trị/tên
    [
        "Apple",
        "Banana",
        "Cherry"
    ]
    2 phải được định nghĩa là một chuỗi trong dấu ngoặc kép [
    [
        "Apple",
        "Banana",
        "Cherry"
    ]
    3]
  • _______44 phải thuộc kiểu dữ liệu JSON hợp lệ.
    • Chuỗi – một số ký tự văn bản thuần túy
    • Số – một số nguyên
    • Đối tượng – tập hợp các cặp khóa/giá trị JSON
    • Mảng – một danh sách các giá trị được sắp xếp theo thứ tự
    • Boolean –
      [
          "Apple",
          "Banana",
          "Cherry"
      ]
      5 hoặc
      [
          "Apple",
          "Banana",
          "Cherry"
      ]
      6
    • Null – đối tượng rỗng
  • Đối tượng JSON hợp lệ không thể chứa các loại dữ liệu khác, ví dụ:
    [
        "Apple",
        "Banana",
        "Cherry"
    ]
    7

Dữ liệu JSON trông như thế nào?

Đây là một ví dụ về cấu trúc dữ liệu JSON

{"name":"James","gender":"male","age":32}
4

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

JSON là một định dạng chuẩn để trao đổi dữ liệu được sử dụng bởi nhiều ngôn ngữ lập trình, bao gồm cả Python. JSON [Ký hiệu đối tượng JavaScript] là một cách biểu diễn dữ liệu ở định dạng văn bản mà con người có thể đọc được và máy tính dễ dàng xử lý. Python cung cấp một mô-đun tích hợp có tên là

{"name":"James","gender":"male","age":32}
8 để hoạt động với dữ liệu JSON. Mô-đun
{"name":"James","gender":"male","age":32}
8 cho phép bạn chuyển đổi các đối tượng Python thành các chuỗi JSON và ngược lại. Nó cũng cung cấp các phương thức để tải và lưu các tệp JSON. Ngoài ra, module
{"name":"James","gender":"male","age":32}
8 còn có thể dùng để chuyển đổi từ điển Python thành các đối tượng JSON, nó chứa các phương thức xử lý dữ liệu JSON, bao gồm các thao tác sau. phân tích cú pháp, tuần tự hóa, giải tuần tự hóa, mã hóa, giải mã và in đẹp. Nhìn chung, mô-đun
{"name":"James","gender":"male","age":32}
8 giúp dễ dàng làm việc với dữ liệu JSON bằng ngôn ngữ lập trình Python

Tuần tự hóa các đối tượng Python thành định dạng JSON

Tuần tự hóa là quá trình dịch cấu trúc dữ liệu thành định dạng có thể được lưu trữ hoặc truyền đi và được xây dựng lại sau đó. Áp dụng cho Python, tuần tự hóa có nghĩa là chúng tôi sẽ dịch các loại dữ liệu cơ bản của Python sang định dạng JSON. Mô-đun

{"name":"James","gender":"male","age":32}
8 có thể chuyển đổi từ điển Python hoặc liệt kê các đối tượng thành định dạng JSON [chuỗi]

Đây là cách mô-đun Python

{"name":"James","gender":"male","age":32}
8 xử lý quá trình tuần tự hóa

Python classJSON typeint, long, floatnumberstrstringTruetrueFalsefalselist, tuplearraydictobjectNonenullPython sang đối tượng JSON và dịch kiểu dữ liệu

Có hai phương thức có sẵn trong mô-đun Python

{"name":"James","gender":"male","age":32}
8 để xử lý quy trình tuần tự hóa

  • – chuyển đổi đối tượng Python thành định dạng JSON luồng [thường được sử dụng để lưu dữ liệu JSON vào tệp]
  • – chuyển đổi đối tượng Python thành một chuỗi có định dạng JSON [tạo ra một đối tượng chuỗi Python chứa dữ liệu JSON]

Tuần tự hóa dữ liệu Python bằng cách sử dụng kết xuất []

Đây là một ví dụ về tuần tự hóa cấu trúc dữ liệu Python thành luồng JSON bằng phương thức

["Apple","Banana","Cherry"]
5

{
    "name": "James",
    "gender": "male"
    "age": 32
}
3

Đây là một kết quả thực thi

Tuần tự hóa dữ liệu Python bằng cách sử dụng kết xuất []

Đây là một ví dụ về tuần tự hóa cấu trúc dữ liệu Python thành chuỗi Python được định dạng JSON bằng phương thức

["Apple","Banana","Cherry"]
6

{
    "name": "James",
    "gender": "male"
    "age": 32
}
5Đây là kết quả thực thi.

Giải tuần tự hóa dữ liệu JSON thành đối tượng Python

Quá trình deserialization ngược lại với serialization. Nó chuyển đổi dữ liệu JSON thành danh sách Python hoặc đối tượng từ điển

Đây là cách mô-đun Python

{"name":"James","gender":"male","age":32}
8 xử lý quy trình khử lưu huỳnh

JSON typePython classnullNonetrueTruefalseFalsenumber [int]intnumber [real]floatarrayliststringstrobjectdictJSON sang dịch kiểu dữ liệu đối tượng PythonCó hai phương thức có sẵn trong mô-đun Python
{"name":"James","gender":"male","age":32}
8 để xử lý quá trình khử lưu huỳnh
  • – chuyển đổi định dạng JSON luồng thành đối tượng Python
  • – chuyển đổi một chuỗi có định dạng JSON thành một đối tượng Python

Deserializing luồng sử dụng load[]

Để deserialize theJSON formated stream thành một đối tượng Python, bạn cần sử dụng phương thức
["Apple","Banana","Cherry"]
9.
{
    "name": "James",
    "gender": "male"
    "age": 32
}
9

Đây là một kết quả thực thi

Deserializing chuỗi sử dụng tải[]

Đến

giải tuần tự hóa chuỗi định dạng JSON thành đối tượng Python, bạn cần sử dụng phương thức
{"name":"James","gender":"male","age":32}
40. ______31

Đây là một kết quả thực thi

Đọc dữ liệu JSON trong Python

Tùy thuộc vào loại nguồn dữ liệu JSON [chuỗi được định dạng JSON hoặc

luồng có định dạng JSON], có hai phương thức có sẵn trong mô-đun Python
{"name":"James","gender":"male","age":32}
8 để xử lý thao tác đọc
  • – đọc một luồng có định dạng JSON và tạo một đối tượng Python từ đó
  • – đọc một chuỗi có định dạng JSON và tạo một đối tượng Python từ đó

Đọc dữ liệu từ tệp bằng load[]

Bạn cần sử dụng phương pháp

["Apple","Banana","Cherry"]
9 để đọc

Luồng định dạng JSON và chuyển đổi nó thành đối tượng Python. Luồng có định dạng JSON được trả về bằng phương thức
{"name":"James","gender":"male","age":32}
43 tích hợp sẵn của Python. Để biết thêm thông tin về các hoạt động của tệp, chúng tôi khuyên bạn nên tham khảo bài viết Làm việc với tệp trong Python. ______35

Đây là một kết quả thực thi

Đọc dữ liệu từ tệp bằng tải []

Bạn cần sử dụng phương thức
{"name":"James","gender":"male","age":32}
40 để đọc chuỗi định dạng JSON và chuyển đổi nó thành một đối tượng Python. Chuỗi định dạng JSON có thể được lấy từ tệp bằng phương thức
{"name":"James","gender":"male","age":32}
43 tích hợp sẵn của Python. Để biết thêm thông tin về các hoạt động của tệp, chúng tôi khuyên bạn nên xem bài viết Làm việc với tệp trong Python.
{"name":"James","gender":"male","age":32}
5

Đây là một kết quả thực thi

Viết dữ liệu JSON vào tệp bằng Python

Tùy thuộc vào loại dữ liệu JSON [chuỗi được định dạng JSON hoặc luồng được định dạng JSON], có hai phương thức có sẵn trong mô-đun Python
{"name":"James","gender":"male","age":32}
8 để xử lý thao tác ghi
  • – chuyển đổi đối tượng Python thành định dạng JSON luồng [thường được sử dụng để lưu dữ liệu thẳng vào tệp]
  • – chuyển đổi đối tượng Python thành một chuỗi có định dạng JSON [tạo ra một đối tượng chuỗi Python có thể được ghi vào tệp]

Ghi dữ liệu vào tệp bằng dump[]

Để ghi luồng có định dạng JSON vào tệp, bạn cần sử dụng phương thức
{"name":"James","gender":"male","age":32}
47 kết hợp với phương thức
{"name":"James","gender":"male","age":32}
43 tích hợp sẵn của Python. Để biết thêm thông tin về các hoạt động của tệp, chúng tôi khuyên bạn nên xem bài viết Làm việc với tệp trong Python.
{"name":"James","gender":"male","age":32}
1

Đây là một ví dụ đầu ra

Ghi dữ liệu vào tệp bằng cách sử dụng kết xuất []

Để ghi chuỗi có định dạng JSON vào tệp, bạn cần sử dụng phương thức

{"name":"James","gender":"male","age":32}
49 kết hợp với phương thức
{"name":"James","gender":"male","age":32}
43 có sẵn trong Python. Để biết thêm thông tin về các hoạt động của tệp, chúng tôi khuyên bạn nên xem bài viết Làm việc với tệp trong Python

{"name":"James","gender":"male","age":32}
2

Đây là một ví dụ đầu ra

Mã hóa và giải mã các đối tượng JSON tùy chỉnh trong Python

Mặc dù mô-đun

{"name":"James","gender":"male","age":32}
8 có thể xử lý hầu hết các loại Python tích hợp. Nó không hiểu cách mã hóa các loại dữ liệu tùy chỉnh theo mặc định. Nếu bạn cần tự mã hóa một đối tượng tùy chỉnh, bạn có thể mở rộng một lớp và ghi đè phương thức
{
    "name": "James",
    "gender": "male"
    "age": 32
}
32 của lớp đó. Phương thức này được sử dụng cho các đối tượng tùy chỉnh JSONinfy

Ví dụ về mã hóa đối tượng tùy chỉnh trong Python

Hãy xem ví dụ. Giả sử bạn có một vài lớp do người dùng định nghĩa. một

{
    "name": "James",
    "gender": "male"
    "age": 32
}
33 và một
{
    "name": "James",
    "gender": "male"
    "age": 32
}
34Và bạn muốn tuần tự hóa chúng thành một tài liệu JSON

Đó là cách bạn có thể làm điều đó

{"name":"James","gender":"male","age":32}
3

Đây là một ví dụ đầu ra

Ví dụ về giải mã đối tượng tùy chỉnh trong Python

Nếu bạn cần chuyển đổi tài liệu JSON thành một số đối tượng Python khác [tôi. e. , không phải là từ điển mặc định], cách đơn giản nhất để làm điều đó là sử dụng lớp và đối số của phương thức

["Apple","Banana","Cherry"]
9 hoặc
{"name":"James","gender":"male","age":32}
40

Các

{"name":"James","gender":"male","age":32}
4

Đây là một ví dụ đầu ra

Làm cách nào để in dữ liệu JSON đẹp bằng Python?

Có hai phương pháp để bạn in một thông báo JSON đẹp mắt

  • Sử dụng đối số
    {
        "name": "James",
        "gender": "male"
        "age": 32
    }
    37 của phương thức
    ["Apple","Banana","Cherry"]
    6 – đây là một tùy chọn lý tưởng khi bạn đang in thông báo JSON từ mã Python của mình
  • Sử dụng mô-đun – bạn có thể sử dụng phương pháp này khi cần định dạng một thông báo JSON trong trình bao của mình

In JSON đẹp bằng cách sử dụng kết xuất []

In JSON đẹp bằng phương pháp
["Apple","Banana","Cherry"]
6 rất đơn giản.
{"name":"James","gender":"male","age":32}
5

Đối số

{
    "name": "James",
    "gender": "male"
    "age": 32
}
37 xác định thụt đầu dòng [số hoặc khoảng trắng] cho các đối tượng JSON trong quá trình in

Đây là một kết quả thực thi

In JSON đẹp bằng cách sử dụng json. mô-đun công cụ

Để định dạng tài liệu JSON tại trình bao của bạn mà không cần sử dụng công cụ của bên thứ ba, bạn có thể sử dụng mô-đun Python

{
    "name": "James",
    "gender": "male"
    "age": 32
}
51

{"name":"James","gender":"male","age":32}
6

Đây là một ví dụ

Làm cách nào để sắp xếp các khóa JSON trong Python?

Khi cần sắp xếp các khóa JSON [sắp xếp các đối tượng JSON theo tên], bạn có thể đặt đối số

{
    "name": "James",
    "gender": "male"
    "age": 32
}
52 thành
{
    "name": "James",
    "gender": "male"
    "age": 32
}
53 trong phương thức
["Apple","Banana","Cherry"]
6

{"name":"James","gender":"male","age":32}
7

Đây là một kết quả thực thi

Tóm lược

Bài viết này trình bày các kiến ​​thức cơ bản và kỹ thuật xử lý JSON nâng cao trong Python, bao gồm

phân tích cú pháp, tuần tự hóa, giải tuần tự hóa, mã hóa, giải mã và in dữ liệu JSON đẹp bằng Python. Khả năng xử lý JSON bằng Python là kỹ năng thực hành bắt buộc đối với mọi kỹ sư tự động hóa AWS, chẳng hạn như khi bạn cần xử lý quá trình xử lý luồng DynamoDB trong hàm AWS Lambda của mình

Những bài viết liên quan

  • Giới thiệu nhanh về Python dành cho Kỹ sư tự động hóa AWS
  • Làm việc với DynamoDB bằng Python bằng Boto3
  • Làm việc với danh sách trong Python
  • Làm việc với tệp trong Python
  • Làm việc với S3 bằng Python bằng Boto3

Kamil Abdurahim

Tôi là một lập trình viên Python và là một người đam mê bảo mật máy tính. Tôi đã là lập trình viên ít nhất 7 năm và là lập trình viên Python ít nhất 4 năm. Tôi cũng đã tham gia nhiều CTF khác nhau và nhóm của tôi đã đứng thứ 3 trong cuộc thi an ninh mạng quốc gia Ethiopian Cybertalents. Tôi cũng có kinh nghiệm trong các hệ thống Linux khác nhau. Tôi đã làm việc trên cả hệ thống dựa trên Debian và Arch

Làm cách nào để phân tích cú pháp qua JSON bằng Python?

Nếu bạn có một chuỗi JSON, bạn có thể phân tích cú pháp chuỗi đó bằng cách sử dụng json. phương thức load[] . Kết quả sẽ là một từ điển Python.

JSON được xử lý như thế nào?

API Java để xử lý JSON [JSR 353] cung cấp API di động để phân tích cú pháp, tạo, chuyển đổi và truy vấn JSON bằng cách sử dụng mô hình đối tượng và API phát trực tuyến . API mô hình đối tượng tạo cấu trúc dạng cây, truy cập ngẫu nhiên, đại diện cho dữ liệu JSON trong bộ nhớ. Cây sau đó có thể được điều hướng và truy vấn.

Cách tốt nhất để làm việc với JSON trong Python là gì?

Bắt đầu bằng cách nhập thư viện json. Chúng ta sử dụng hàm open để đọc tệp JSON và sau đó là phương thức json. load[] để phân tích cú pháp chuỗi JSON thành một từ điển Python có tên superHeroSquad . Đó là nó.

Chủ Đề