Làm cách nào để lưu trữ phản hồi JSON trong Python?

Khi bạn chuyển đổi từ Python sang JSON, các đối tượng Python được chuyển đổi thành JSON (JavaScript) tương đương

PythonJSONdictObjectlistArraytupleArraystrStringintNumberfloatNumberTruetrueFalsefalseNonenull

Thí dụ

Chuyển đổi một đối tượng Python chứa tất cả các loại dữ liệu hợp pháp

nhập json

x = {
  "tên". "John",
  "tuổi". 30,
  "đã kết hôn". Đúng,
  "đã ly hôn". Sai,
  "con". ("Ann","Billy"),
  "thú cưng". Không,
  "ô tô". [
    {"model". "BMW 230", "mpg". 27. 5},
    {"model". "Ford Edge", "mpg". 24. 1}
  ]
}

in (json. bãi (x))

Tự mình thử »


Định dạng kết quả

Ví dụ trên in ra một chuỗi JSON, nhưng nó không dễ đọc lắm, không có dấu đầu dòng và ngắt dòng

Phương thức

Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
2 có các tham số để dễ đọc kết quả hơn

Bạn cũng có thể xác định dấu phân cách, giá trị mặc định là (", ", ". "), có nghĩa là sử dụng dấu phẩy và dấu cách để phân tách từng đối tượng, dấu hai chấm và dấu cách để phân tách khóa khỏi giá trị

Trong bài viết này, chúng ta sẽ tìm hiểu cách phân tích cú pháp phản hồi JSON bằng thư viện yêu cầu. Ví dụ: chúng tôi đang sử dụng thư viện

Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
3 để gửi lệnh gọi RESTful GET tới máy chủ và đổi lại, chúng tôi nhận được phản hồi ở định dạng JSON, hãy xem cách phân tích cú pháp dữ liệu JSON này bằng Python

Chúng tôi sẽ phân tích phản hồi JSON thành Từ điển Python để bạn có thể truy cập dữ liệu JSON bằng các cặp khóa-giá trị. Ngoài ra, bạn có thể prettyPrint JSON ở định dạng có thể đọc được

Đọc thêm

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

Phản hồi của yêu cầu GET chứa thông tin mà chúng tôi gọi là tải trọng. Chúng tôi có thể tìm thấy thông tin này trong nội dung thư. Sử dụng các thuộc tính và phương thức của

Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
4 để xem tải trọng ở các định dạng khác nhau

Chúng tôi có thể truy cập dữ liệu tải trọng bằng ba phương thức sau của mô-đun yêu cầu

  • Entire JSON response
    {'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
    0 được sử dụng để truy cập dữ liệu tải trọng ở định dạng byte thô
  • Entire JSON response
    {'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
    1. được sử dụng để truy cập dữ liệu tải trọng ở định dạng Chuỗi
  • Entire JSON response
    {'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
    2 được sử dụng để truy cập dữ liệu tải trọng ở định dạng được tuần tự hóa JSON

Nội dung phản hồi JSON

Mô-đun yêu cầu cung cấp bộ giải mã JSON dựng sẵn, chúng ta có thể sử dụng nó khi xử lý dữ liệu JSON. Chỉ cần thực thi

Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
2, thế là xong.
Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
2 trả về phản hồi JSON ở định dạng từ điển Python để chúng tôi có thể truy cập JSON bằng các cặp khóa-giá trị

Bạn có thể gặp lỗi 204 trong trường hợp giải mã JSON không thành công.

Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
2 đưa ra một ngoại lệ trong trường hợp sau

  • Phản hồi không chứa bất kỳ dữ liệu nào
  • Phản hồi chứa JSON không hợp lệ

Bạn phải kiểm tra

Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
6 hoặc
Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
7 trước khi phân tích cú pháp JSON vì lệnh gọi thành công tới
Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
2 không biểu thị sự thành công của yêu cầu

Trong trường hợp xảy ra lỗi HTTP 500, một số máy chủ có thể trả về đối tượng JSON trong phản hồi không thành công (e. g. , chi tiết lỗi với HTTP 500). Vì vậy, bạn nên thực hiện

Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
2 sau khi kiểm tra
Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
6 hoặc kiểm tra
Entire JSON response
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': '49.35.214.177, 49.35.214.177', 'url': 'https://httpbin.org/get'}
7

Hãy xem ví dụ về cách sử dụng phản hồi. json() và phân tích nội dung JSON

Trong ví dụ này, tôi đang sử dụng httpbin. org để thực hiện lệnh gọi GET. httpbin. org  là một dịch vụ web cho phép kiểm tra các yêu cầu và phản hồi bằng dữ liệu về yêu cầu đó. Bạn có thể sử dụng dịch vụ này để kiểm tra mã của mình

Làm cách nào để lưu phản hồi JSON trong Python?

Phương pháp 1. Viết JSON vào một tệp bằng Python bằng cách sử dụng json. dumps() Gói JSON trong Python có một hàm gọi là json. dumps() giúp chuyển đổi từ điển thành đối tượng JSON.

Làm cách nào để lưu trữ tệp JSON trong Python?

Chúng tôi sử dụng json. phương thức loading() để giải tuần tự hóa dữ liệu JSON thành đối tượng Python. json. phương thức load() cũng được sử dụng để giải tuần tự hóa tệp có định dạng JSON thành đối tượng Python

Làm cách nào để nhận phản hồi JSON bằng Python?

Nội dung phản hồi JSON . response. json() , thế là xong. phản ứng. json() trả về phản hồi JSON ở định dạng từ điển Python để chúng tôi có thể truy cập JSON bằng các cặp khóa-giá trị.

Làm cách nào để gửi phản hồi JSON bằng Python?

Cách tiếp cận. .
Nhập mô-đun
Tạo một chức năng
Tạo từ điển
Chuyển từ điển sang đối tượng JSON bằng phương thức dumps()
Trả lại đối tượng JSON