Làm thế nào để bạn truy cập một chuỗi json trong python?

Bài viết này trình bày cách sử dụng các phương thức

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 và
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 của Python để đọc dữ liệu JSON từ tệp và Chuỗi. Sử dụng phương pháp
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 và
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9, bạn có thể biến dữ liệu được định dạng/mã hóa JSON thành Các loại Python, quá trình này được gọi là giải mã JSON. Mô-đun json tích hợp trong Python cung cấp hai phương thức sau để giải mã dữ liệu JSON

Đọc thêm

  • Giải Bài tập Python JSON để thực hành các kỹ năng Python JSON

Để phân tích cú pháp JSON từ URL hoặc tệp, hãy sử dụng

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8. Đối với chuỗi phân tích cú pháp có nội dung JSON, hãy sử dụng
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9

Phân tích cú pháp JSON của Python bằng tải và tải

Cú pháp của
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 và
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9

Chúng ta có thể thực hiện nhiều thao tác phân tích cú pháp JSON bằng phương pháp

{
    "name": "jane doe",
    "salary": 9000,
    "skills": [
        "Raspberry pi",
        "Machine Learning",
        "Web Development"
    ],
    "email": "JaneDoe@pynative.com",
    "projects": [
        "Python Data Mining",
        "Python Data Science"
    ]
}
6 và
{
    "name": "jane doe",
    "salary": 9000,
    "skills": [
        "Raspberry pi",
        "Machine Learning",
        "Web Development"
    ],
    "email": "JaneDoe@pynative.com",
    "projects": [
        "Python Data Mining",
        "Python Data Science"
    ]
}
7. Đầu tiên, hãy hiểu cú pháp và đối số của nó, sau đó chúng ta chuyển sang cách sử dụng từng cái một

Cú pháp của ________ 08

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
1

Cú pháp của

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]

Tất cả các đối số có cùng ý nghĩa trong cả hai phương pháp

Tham số được sử dụng

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 được sử dụng để đọc tài liệu JSON từ tệp và
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 được sử dụng để chuyển đổi tài liệu Chuỗi JSON thành từ điển Python

  • Con trỏ tệp
    json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    62 được sử dụng để đọc tệp văn bản, tệp nhị phân hoặc tệp JSON chứa tài liệu JSON
  • json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    63  là hàm tùy chọn sẽ được gọi với kết quả của bất kỳ đối tượng nào được giải mã theo nghĩa đen. Mô-đun json tích hợp sẵn của Python chỉ có thể xử lý các loại nguyên thủy có tương đương JSON trực tiếp [e. g. , từ điển, danh sách, chuỗi, Số, Không có, v.v. ]. Nhưng khi bạn muốn chuyển đổi dữ liệu JSON thành một loại Python tùy chỉnh, chúng ta cần triển khai bộ giải mã tùy chỉnh và chuyển nó dưới dạng một đối tượng
    json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    64 sang một phương thức
    json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    65 để chúng ta có thể nhận lại một loại Python tùy chỉnh thay vì một từ điển
  • json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    66 là một hàm tùy chọn sẽ được gọi với kết quả của bất kỳ đối tượng theo nghĩa đen nào được giải mã bằng một danh sách các cặp được sắp xếp theo thứ tự. Giá trị trả về của 
    json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    67 sẽ được sử dụng thay cho từ điển Python. Tính năng này cũng có thể được sử dụng để triển khai bộ giải mã tùy chỉnh. Nếu 
    json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    64 cũng được xác định, thì 
    json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    67 sẽ được ưu tiên
  • json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    40 là tham số tùy chọn, nhưng nếu được chỉ định, sẽ được gọi với chuỗi của mọi số nguyên và số float JSON được giải mã. Theo mặc định, điều này tương đương với
    json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    41
  • json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    42 nếu được chỉ định, nó sẽ được gọi với chuỗi của mọi JSON int sẽ được giải mã. Theo mặc định, điều này tương đương với
    json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
    43

Chúng ta sẽ xem chi tiết việc sử dụng tất cả các tham số này

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 để đọc dữ liệu JSON từ một tệp và chuyển đổi nó thành từ điển

Sử dụng phương thức

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8, chúng ta có thể đọc dữ liệu JSON từ văn bản, JSON hoặc tệp nhị phân. Phương thức
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 trả về dữ liệu dưới dạng từ điển Python. Sau đó, chúng tôi sử dụng từ điển này để truy cập và thao tác dữ liệu trong ứng dụng hoặc hệ thống của chúng tôi

Ánh xạ giữa các thực thể JSON và Python trong khi giải mã

Vui lòng tham khảo bảng chuyển đổi sau, được sử dụng bởi phương pháp

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 và
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 cho các bản dịch trong giải mã

JSONPythonobjectdictarrayliststringstrnumber [int]intnumber [real]floattrueTruefalseFalsenullNonePython Bảng chuyển đổi JSON

Bây giờ, hãy xem ví dụ. Đối với ví dụ này, tôi đang đọc “nhà phát triển. json” hiện trên ổ cứng của tôi. Tệp này chứa dữ liệu JSON sau

________số 8

Tệp JSON của nhà phát triển

Thí dụ

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
6

đầu ra

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
4

Truy cập dữ liệu JSON trực tiếp bằng tên khóa

Sử dụng đoạn mã sau Nếu bạn muốn truy cập trực tiếp vào khóa JSON thay vì lặp lại toàn bộ JSON từ một tệp

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
6

đầu ra

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
7

Bạn có thể đọc dữ liệu JSON từ văn bản, json hoặc tệp nhị phân theo cách tương tự đã đề cập ở trên

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 để chuyển đổi chuỗi JSON thành từ điển

Đôi khi chúng tôi nhận được phản hồi JSON ở định dạng chuỗi. Vì vậy, để sử dụng nó trong ứng dụng của mình, chúng ta cần chuyển đổi chuỗi JSON thành từ điển Python. Sử dụng phương thức

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9, chúng ta có thể giải tuần tự hóa thể hiện String, byte hoặc bytearray gốc chứa tài liệu JSON thành từ điển Python. Chúng ta có thể tham khảo bảng chuyển đổi được đề cập ở đầu bài viết

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
0

đầu ra

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
1

Phân tích cú pháp và truy xuất các khóa-giá trị mảng JSON lồng nhau

Giả sử rằng bạn đã nhận được phản hồi JSON giống như thế này

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
2

Ví dụ: Bạn muốn truy xuất tên dự án từ mảng JSON thông tin của nhà phát triển để biết họ đang làm việc cho dự án nào. Bây giờ chúng ta hãy xem cách đọc các khóa-giá trị mảng JSON lồng nhau

Trong ví dụ này, chúng tôi đang sử dụng mảng JSON thông tin nhà phát triển, có thông tin dự án và trải nghiệm dưới dạng dữ liệu JSON lồng nhau

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
0

đầu ra

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
1

Tải JSON vào OrderedDict

OrderedDict có thể được sử dụng làm đầu vào cho JSON. Ý tôi là, khi bạn đổ JSON vào một tệp hoặc chuỗi, chúng ta có thể chuyển OrderedDict cho nó.
Tuy nhiên, khi chúng tôi muốn duy trì trật tự, chúng tôi tải dữ liệu JSON trở lại OrderedDict để chúng tôi có thể giữ thứ tự của các khóa trong tệp.

Như chúng ta đã thảo luận trong bài viết, tham số 

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
66 của phương thức
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8 là một hàm tùy chọn sẽ được gọi với kết quả là bất kỳ đối tượng theo nghĩa đen nào được giải mã bằng danh sách các cặp được sắp xếp theo thứ tự

Hãy xem ví dụ ngay bây giờ

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
2

đầu ra

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
3

Cách sử dụng
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
40 và
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
42 kwarg của
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8

Như tôi đã nói với

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
40 và
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
42, cả hai đều là tham số tùy chọn, nhưng nếu được chỉ định, sẽ được gọi cùng với chuỗi của mọi số thực và số nguyên JSON sẽ được giải mã. Theo mặc định, điều này tương đương với
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
41 và
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
43

Giả sử tài liệu JSON chứa nhiều giá trị float và bạn muốn làm tròn tất cả các giá trị float thành hai dấu thập phân. Trong trường hợp này, chúng ta cần xác định một hàm tùy chỉnh thực hiện bất kỳ phép làm tròn nào bạn muốn. Chúng ta có thể chuyển một chức năng như vậy cho

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
40 kwarg

Ngoài ra, nếu bạn muốn thực hiện bất kỳ thao tác nào trên các giá trị số nguyên, chúng ta có thể viết một hàm tùy chỉnh và chuyển hàm đó tới

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
42 kwarg. Ví dụ: bạn đã nhận được số ngày nghỉ phép trong tài liệu JSON và bạn muốn tính tiền lương để khấu trừ

Thí dụ

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
4

đầu ra

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
5

Triển khai bộ giải mã JSON tùy chỉnh bằng cách sử dụng
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
8

Mô-đun json tích hợp của Python chỉ có thể xử lý các kiểu nguyên thủy Python có tương đương JSON trực tiếp [e. g. , từ điển, danh sách, chuỗi, số, Không có, v.v. ]

Khi bạn thực thi một phương thức

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
73 hoặc
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9, nó sẽ trả về một từ điển Python. Nếu bạn muốn chuyển đổi JSON thành một đối tượng Python tùy chỉnh thì chúng ta có thể viết một bộ giải mã JSON tùy chỉnh và chuyển nó cho phương thức
json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
9 để chúng ta có thể nhận một đối tượng Lớp tùy chỉnh thay vì một từ điển

Hãy xem cách sử dụng bộ giải mã JSON trong phương thức tải. Trong ví dụ này, chúng ta sẽ xem cách sử dụng tham số

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
63 của một phương thức tải

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
6

đầu ra

json.loads[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]
7

Cũng đọc

  • Kiểm tra xem một khóa có tồn tại trong JSON hay không và Lặp lại mảng JSON
  • Python Phân tích cú pháp nhiều đối tượng JSON từ tệp

Vậy bạn nghĩ như thế nào?

Tôi muốn nghe từ bạn. Bạn nghĩ gì về bài viết này? . Dù bằng cách nào, hãy cho tôi biết bằng cách để lại nhận xét bên dưới

Ngoài ra, hãy thử giải Bài tập JSON của Python để hiểu rõ hơn về Làm việc với Dữ liệu JSON trong Python

Chủ Đề