Hướng dẫn python requests path variables - python yêu cầu biến đường dẫn

0

Show

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một điểm cuối HTTP được phơi bày dưới dạng http: // localhost: 8080/test/api/v1/qc/{id} để xóa, trong khi thực hiện cuộc gọi xóa API này Tôi phải thay thế bằng ID thích hợp ID thích hợp

Tôi đã thử dưới đây bằng cách sử dụng mô -đun yêu cầu của Python

param = {
  "id" : 1
}

requests.delete(url = http://localhost:8080/test/api/v1/qc/{id}, params=param)

Cuộc gọi API này bị hỏng với lỗi

ValueError: No JSON object could be decoded.

Tôi có thể làm cái này như thế nào?

Hướng dẫn python requests path variables - python yêu cầu biến đường dẫn

Hamada

1.5662 huy hiệu vàng11 Huy hiệu bạc23 Huy hiệu đồng2 gold badges11 silver badges23 bronze badges

hỏi ngày 18 tháng 7 năm 2020 lúc 9:57Jul 18, 2020 at 9:57

Anshul Sharmaanshul SharmaAnshul Sharma

9123 Huy hiệu vàng12 Huy hiệu bạc34 Huy hiệu đồng3 gold badges12 silver badges34 bronze badges

2

Mã của bạn không thể chạy AS-IS. Bạn cần trích dẫn chuỗi URL của mình:

>>> requests.get('https://api.github.com')

2

Đọc các tài liệu cho các yêu cầu,

>>> requests.get('https://api.github.com')

3 chỉ gửi từ điển
>>> requests.get('https://api.github.com')

4 dưới dạng chuỗi truy vấn, do đó, nó sẽ chỉ giải quyết trên
>>> requests.get('https://api.github.com')

5 đến cuối URL.

Những gì bạn muốn là

>>> requests.get('https://api.github.com')

6 để có được giá trị từ từ điển. Bạn có thể nhìn vào câu trả lời này theo nhiều cách khác nhau: Làm cách nào để định dạng một chuỗi bằng cách sử dụng từ điển trong Python-3.x?

Bạn muốn một cái gì đó giống như

>>> requests.get('https://api.github.com')

7

Đã trả lời ngày 18 tháng 7 năm 2020 lúc 10:12Jul 18, 2020 at 10:12

2

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: thực hiện các yêu cầu HTTP với Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Making HTTP Requests With Python

Thư viện

>>> requests.get('https://api.github.com')

8 là tiêu chuẩn thực tế để thực hiện các yêu cầu HTTP trong Python. Nó trừu tượng hóa sự phức tạp của việc đưa ra các yêu cầu đằng sau một API đơn giản, đẹp đẽ để bạn có thể tập trung vào việc tương tác với các dịch vụ và tiêu thụ dữ liệu trong ứng dụng của mình.

Trong suốt bài viết này, bạn sẽ thấy một số tính năng hữu ích nhất mà

>>> requests.get('https://api.github.com')

8 cung cấp cũng như cách tùy chỉnh và tối ưu hóa các tính năng đó cho các tình huống khác nhau mà bạn có thể gặp. Bạn cũng sẽ học cách sử dụng
>>> requests.get('https://api.github.com')

8 một cách hiệu quả cũng như cách ngăn các yêu cầu cho các dịch vụ bên ngoài làm chậm ứng dụng của bạn.

Trong hướng dẫn này, bạn sẽ học cách:

  • Thực hiện các yêu cầu bằng các phương thức HTTP phổ biến nhất using the most common HTTP methods
  • Tùy chỉnh các yêu cầu của bạn Tiêu đề và dữ liệu, sử dụng chuỗi truy vấn và thân thông báo your requests’ headers and data, using the query string and message body
  • Kiểm tra dữ liệu từ các yêu cầu và phản hồi của bạn data from your requests and responses
  • Thực hiện các yêu cầu được xác thựcauthenticated requests
  • Định cấu hình các yêu cầu của bạn để giúp ngăn chặn ứng dụng của bạn sao lưu hoặc chậm lại your requests to help prevent your application from backing up or slowing down

Mặc dù tôi đã cố gắng bao gồm nhiều thông tin như bạn cần hiểu các tính năng và ví dụ có trong bài viết này, tôi giả sử một kiến ​​thức chung rất cơ bản về HTTP. Điều đó nói rằng, dù sao bạn vẫn có thể theo dõi tốt.

Bây giờ, điều đó đã không phù hợp, hãy để Lặn đi vào và xem cách bạn có thể sử dụng

>>> requests.get('https://api.github.com')

8 trong ứng dụng của mình!

Bắt đầu với >>> requests.get('https://api.github.com') 8

Hãy bắt đầu bằng cách cài đặt thư viện

>>> requests.get('https://api.github.com')

8. Để làm như vậy, hãy chạy lệnh sau:

Nếu bạn thích sử dụng PIPENV để quản lý các gói Python, bạn có thể chạy như sau:

$ pipenv install requests

Khi

>>> requests.get('https://api.github.com')

8 được cài đặt, bạn có thể sử dụng nó trong ứng dụng của mình. Nhập
>>> requests.get('https://api.github.com')

8 trông như thế này:

Bây giờ, tất cả các bạn đã thiết lập, đó là thời gian để bắt đầu hành trình của bạn thông qua

>>> requests.get('https://api.github.com')

8. Mục tiêu đầu tiên của bạn sẽ là học cách thực hiện yêu cầu
>>> response = requests.get('https://api.github.com')
7.

Yêu cầu nhận

Các phương thức HTTP như

>>> response = requests.get('https://api.github.com')
7 và
>>> response = requests.get('https://api.github.com')
9, xác định hành động nào mà bạn đang cố gắng thực hiện khi thực hiện yêu cầu HTTP. Ngoài
>>> response = requests.get('https://api.github.com')
7 và
>>> response = requests.get('https://api.github.com')
9, có một số phương pháp phổ biến khác mà bạn sẽ sử dụng sau này trong hướng dẫn này.

Một trong những phương pháp HTTP phổ biến nhất là

>>> response = requests.get('https://api.github.com')
7. Phương thức
>>> response = requests.get('https://api.github.com')
7 chỉ ra rằng bạn đang cố gắng lấy hoặc truy xuất dữ liệu từ một tài nguyên được chỉ định. Để thực hiện yêu cầu
>>> response = requests.get('https://api.github.com')
7, gọi
>>> response.status_code
200
5.

Để kiểm tra điều này, bạn có thể thực hiện yêu cầu

>>> response = requests.get('https://api.github.com')
7 cho API REST root Github bằng cách gọi
>>> response.status_code
200
7 với URL sau:

>>>

>>> requests.get('https://api.github.com')

Xin chúc mừng! Bạn đã thực hiện yêu cầu đầu tiên của bạn. Hãy để lặn sâu hơn một chút về phản ứng của yêu cầu đó.

Phản hồi

A

>>> response.status_code
200
8 là một đối tượng mạnh mẽ để kiểm tra kết quả của yêu cầu. Hãy để Lừa thực hiện một lần nữa, nhưng thời gian này lưu trữ giá trị trả về trong một biến để bạn có thể xem xét kỹ hơn các thuộc tính và hành vi của nó:

>>>

>>> response = requests.get('https://api.github.com')

Xin chúc mừng! Bạn đã thực hiện yêu cầu đầu tiên của bạn. Hãy để lặn sâu hơn một chút về phản ứng của yêu cầu đó.

Phản hồi

A

>>> response.status_code
200
8 là một đối tượng mạnh mẽ để kiểm tra kết quả của yêu cầu. Hãy để Lừa thực hiện một lần nữa, nhưng thời gian này lưu trữ giá trị trả về trong một biến để bạn có thể xem xét kỹ hơn các thuộc tính và hành vi của nó:

Trong ví dụ này, bạn đã nắm bắt được giá trị trả về của

>>> response.status_code
200
7, đây là một ví dụ là
>>> response.status_code
200
8 và được lưu trữ nó trong một biến gọi là
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1. Bây giờ bạn có thể sử dụng
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 để xem nhiều thông tin về kết quả yêu cầu
>>> response = requests.get('https://api.github.com')
7 của bạn.

Mã trạng thái

>>>

>>> response.status_code
200

Xin chúc mừng! Bạn đã thực hiện yêu cầu đầu tiên của bạn. Hãy để lặn sâu hơn một chút về phản ứng của yêu cầu đó.

Phản hồi

if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')

A

>>> response.status_code
200
8 là một đối tượng mạnh mẽ để kiểm tra kết quả của yêu cầu. Hãy để Lừa thực hiện một lần nữa, nhưng thời gian này lưu trữ giá trị trả về trong một biến để bạn có thể xem xét kỹ hơn các thuộc tính và hành vi của nó:

Trong ví dụ này, bạn đã nắm bắt được giá trị trả về của

>>> response.status_code
200
7, đây là một ví dụ là
>>> response.status_code
200
8 và được lưu trữ nó trong một biến gọi là
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1. Bây giờ bạn có thể sử dụng
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 để xem nhiều thông tin về kết quả yêu cầu
>>> response = requests.get('https://api.github.com')
7 của bạn.

Mã trạng thái

if response:
    print('Success!')
else:
    print('An error has occurred.')

Truyền thông tin đầu tiên mà bạn có thể thu thập từ

>>> response.status_code
200
8 là mã trạng thái. Mã trạng thái thông báo cho bạn về trạng thái của yêu cầu.

Ví dụ: trạng thái

if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
5 có nghĩa là yêu cầu của bạn đã thành công, trong khi trạng thái
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
6 có nghĩa là tài nguyên bạn đang tìm kiếm không được tìm thấy. Có nhiều mã trạng thái có thể khác để cung cấp cho bạn những hiểu biết cụ thể về những gì đã xảy ra với yêu cầu của bạn.

Bằng cách truy cập

if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
7, bạn có thể thấy mã trạng thái mà máy chủ đã trả về:

if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
7 đã trả về
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
9, điều đó có nghĩa là yêu cầu của bạn đã thành công và máy chủ trả lời với dữ liệu bạn đang yêu cầu.

import requests
from requests.exceptions import HTTPError

for url in ['https://api.github.com', 'https://api.github.com/invalid']:
    try:
        response = requests.get(url)

        # If the response was successful, no Exception will be raised
        response.raise_for_status()
    except HTTPError as http_err:
        print(f'HTTP error occurred: {http_err}')  # Python 3.6
    except Exception as err:
        print(f'Other error occurred: {err}')  # Python 3.6
    else:
        print('Success!')

Đôi khi, bạn có thể muốn sử dụng thông tin này để đưa ra quyết định trong mã của mình:

Bây giờ, bạn đã biết rất nhiều về cách xử lý mã trạng thái của phản hồi bạn đã lấy lại từ máy chủ. Tuy nhiên, khi bạn thực hiện yêu cầu

>>> response = requests.get('https://api.github.com')
7, bạn hiếm khi chỉ quan tâm đến mã trạng thái của phản hồi. Thông thường, bạn muốn xem thêm. Tiếp theo, bạn sẽ thấy cách xem dữ liệu thực tế mà máy chủ gửi lại trong phần thân của phản hồi.

Nội dung

Phản hồi của yêu cầu

>>> response = requests.get('https://api.github.com')
7 thường có một số thông tin có giá trị, được gọi là tải trọng, trong thân thông báo. Sử dụng các thuộc tính và phương thức của
>>> response.status_code
200
8, bạn có thể xem tải trọng ở nhiều định dạng khác nhau.

Để xem nội dung phản hồi trong

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
4, bạn sử dụng
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5:

>>>

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

>>>

ValueError: No JSON object could be decoded.
0

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

>>>

ValueError: No JSON object could be decoded.
1

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

>>>

ValueError: No JSON object could be decoded.
2

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

Vì việc giải mã

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
4 thành
ValueError: No JSON object could be decoded.
00 yêu cầu sơ đồ mã hóa,
>>> requests.get('https://api.github.com')

8 sẽ cố gắng đoán mã hóa dựa trên các tiêu đề phản hồi nếu bạn không chỉ định. Bạn có thể cung cấp mã hóa rõ ràng bằng cách cài đặt
ValueError: No JSON object could be decoded.
02 trước khi truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

Nếu bạn nhìn vào phản hồi, bạn sẽ thấy rằng đó thực sự là nội dung JSON tuần tự hóa. Để có được một từ điển, bạn có thể lấy ValueError: No JSON object could be decoded. 00 mà bạn đã lấy từ >>> response = requests.get('https://api.github.com') >>> response.content b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}' 8 và giải phóng nó bằng cách sử dụng ValueError: No JSON object could be decoded. 06. Tuy nhiên, một cách đơn giản hơn để thực hiện nhiệm vụ này là sử dụng ValueError: No JSON object could be decoded. 07:

ValueError: No JSON object could be decoded.
08 của giá trị trả về của
ValueError: No JSON object could be decoded.
07 là từ điển, do đó bạn có thể truy cập các giá trị trong đối tượng theo khóa.

ValueError: No JSON object could be decoded.
3

Bạn có thể làm rất nhiều với mã trạng thái và thân thông báo. Nhưng, nếu bạn cần thêm thông tin, như siêu dữ liệu về chính phản hồi, bạn sẽ cần phải xem xét các tiêu đề phản hồi.

Tham số chuỗi truy vấn

>>>

ValueError: No JSON object could be decoded.
4

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

>>>

ValueError: No JSON object could be decoded.
5

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

Vì việc giải mã >>> response = requests.get('https://api.github.com') >>> response.content b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}' 4 thành ValueError: No JSON object could be decoded. 00 yêu cầu sơ đồ mã hóa, >>> requests.get('https://api.github.com') 8 sẽ cố gắng đoán mã hóa dựa trên các tiêu đề phản hồi nếu bạn không chỉ định. Bạn có thể cung cấp mã hóa rõ ràng bằng cách cài đặt ValueError: No JSON object could be decoded. 02 trước khi truy cập >>> response = requests.get('https://api.github.com') >>> response.content b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}' 8:

Nếu bạn nhìn vào phản hồi, bạn sẽ thấy rằng đó thực sự là nội dung JSON tuần tự hóa. Để có được một từ điển, bạn có thể lấy

ValueError: No JSON object could be decoded.
00 mà bạn đã lấy từ
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8 và giải phóng nó bằng cách sử dụng
ValueError: No JSON object could be decoded.
06. Tuy nhiên, một cách đơn giản hơn để thực hiện nhiệm vụ này là sử dụng
ValueError: No JSON object could be decoded.
07:

>>>

ValueError: No JSON object could be decoded.
6

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

>>>

ValueError: No JSON object could be decoded.
7

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

Vì việc giải mã >>> response = requests.get('https://api.github.com') >>> response.content b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}' 4 thành ValueError: No JSON object could be decoded. 00 yêu cầu sơ đồ mã hóa, >>> requests.get('https://api.github.com') 8 sẽ cố gắng đoán mã hóa dựa trên các tiêu đề phản hồi nếu bạn không chỉ định. Bạn có thể cung cấp mã hóa rõ ràng bằng cách cài đặt ValueError: No JSON object could be decoded. 02 trước khi truy cập >>> response = requests.get('https://api.github.com') >>> response.content b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}' 8:

Nếu bạn nhìn vào phản hồi, bạn sẽ thấy rằng đó thực sự là nội dung JSON tuần tự hóa. Để có được một từ điển, bạn có thể lấy

ValueError: No JSON object could be decoded.
00 mà bạn đã lấy từ
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8 và giải phóng nó bằng cách sử dụng
ValueError: No JSON object could be decoded.
06. Tuy nhiên, một cách đơn giản hơn để thực hiện nhiệm vụ này là sử dụng
ValueError: No JSON object could be decoded.
07:

ValueError: No JSON object could be decoded.
08 của giá trị trả về của
ValueError: No JSON object could be decoded.
07 là từ điển, do đó bạn có thể truy cập các giá trị trong đối tượng theo khóa.

Bạn có thể làm rất nhiều với mã trạng thái và thân thông báo. Nhưng, nếu bạn cần thêm thông tin, như siêu dữ liệu về chính phản hồi, bạn sẽ cần phải xem xét các tiêu đề phản hồi.

>>>

ValueError: No JSON object could be decoded.
8

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

>>>

ValueError: No JSON object could be decoded.
9

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

Vì việc giải mã

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
4 thành
ValueError: No JSON object could be decoded.
00 yêu cầu sơ đồ mã hóa,
>>> requests.get('https://api.github.com')

8 sẽ cố gắng đoán mã hóa dựa trên các tiêu đề phản hồi nếu bạn không chỉ định. Bạn có thể cung cấp mã hóa rõ ràng bằng cách cài đặt
ValueError: No JSON object could be decoded.
02 trước khi truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

>>>

$ pipenv install requests
0

Mặc dù

>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
5 cho phép bạn truy cập vào các byte thô của tải trọng phản hồi, bạn thường sẽ muốn chuyển đổi chúng thành một chuỗi bằng cách sử dụng một mã hóa ký tự như UTF-8.
if response.status_code == 200:
    print('Success!')
elif response.status_code == 404:
    print('Not Found.')
1 sẽ làm điều đó cho bạn khi bạn truy cập
>>> response = requests.get('https://api.github.com')
>>> response.content
b'{"current_user_url":"https://api.github.com/user","current_user_authorizations_html_url":"https://github.com/settings/connections/applications{/client_id}","authorizations_url":"https://api.github.com/authorizations","code_search_url":"https://api.github.com/search/code?q={query}{&page,per_page,sort,order}","commit_search_url":"https://api.github.com/search/commits?q={query}{&page,per_page,sort,order}","emails_url":"https://api.github.com/user/emails","emojis_url":"https://api.github.com/emojis","events_url":"https://api.github.com/events","feeds_url":"https://api.github.com/feeds","followers_url":"https://api.github.com/user/followers","following_url":"https://api.github.com/user/following{/target}","gists_url":"https://api.github.com/gists{/gist_id}","hub_url":"https://api.github.com/hub","issue_search_url":"https://api.github.com/search/issues?q={query}{&page,per_page,sort,order}","issues_url":"https://api.github.com/issues","keys_url":"https://api.github.com/user/keys","notifications_url":"https://api.github.com/notifications","organization_repositories_url":"https://api.github.com/orgs/{org}/repos{?type,page,per_page,sort}","organization_url":"https://api.github.com/orgs/{org}","public_gists_url":"https://api.github.com/gists/public","rate_limit_url":"https://api.github.com/rate_limit","repository_url":"https://api.github.com/repos/{owner}/{repo}","repository_search_url":"https://api.github.com/search/repositories?q={query}{&page,per_page,sort,order}","current_user_repositories_url":"https://api.github.com/user/repos{?type,page,per_page,sort}","starred_url":"https://api.github.com/user/starred{/owner}{/repo}","starred_gists_url":"https://api.github.com/gists/starred","team_url":"https://api.github.com/teams","user_url":"https://api.github.com/users/{user}","user_organizations_url":"https://api.github.com/user/orgs","user_repositories_url":"https://api.github.com/users/{user}/repos{?type,page,per_page,sort}","user_search_url":"https://api.github.com/search/users?q={query}{&page,per_page,sort,order}"}'
8:

Kiểm tra yêu cầu của bạn

Khi bạn đưa ra yêu cầu, thư viện

>>> requests.get('https://api.github.com')

8 sẽ chuẩn bị yêu cầu trước khi thực sự gửi nó đến máy chủ đích. Chuẩn bị yêu cầu bao gồm những thứ như xác thực tiêu đề và tuần tự hóa nội dung JSON.

Bạn có thể xem

ValueError: No JSON object could be decoded.
49 bằng cách truy cập
ValueError: No JSON object could be decoded.
52:

>>>

$ pipenv install requests
1

Kiểm tra

ValueError: No JSON object could be decoded.
49 cho phép bạn truy cập vào tất cả các loại thông tin về yêu cầu được thực hiện như tải trọng, URL, tiêu đề, xác thực, v.v.

Cho đến nay, bạn đã đưa ra rất nhiều loại yêu cầu khác nhau, nhưng tất cả họ đều có một điểm chung: chúng là những yêu cầu không xác thực đối với API công khai. Nhiều dịch vụ bạn có thể đi qua sẽ muốn bạn xác thực theo một cách nào đó.

Xác thực

Xác thực giúp một dịch vụ hiểu bạn là ai. Thông thường, bạn cung cấp thông tin đăng nhập của mình cho một máy chủ bằng cách truyền dữ liệu thông qua tiêu đề

ValueError: No JSON object could be decoded.
54 hoặc tiêu đề tùy chỉnh được xác định bởi dịch vụ. Tất cả các chức năng yêu cầu mà bạn đã thấy đến điểm này cung cấp một tham số gọi là
ValueError: No JSON object could be decoded.
55, cho phép bạn vượt qua thông tin đăng nhập của mình.

Một ví dụ về API yêu cầu xác thực là API người dùng được xác thực của GitHub. Điểm cuối này cung cấp thông tin về hồ sơ người dùng được xác thực. Để thực hiện yêu cầu cho API người dùng được xác thực, bạn có thể chuyển tên người dùng và mật khẩu GitHub của mình trong một bộ điều khiển sang

>>> response.status_code
200
7:

>>>

$ pipenv install requests
2

Kiểm tra

ValueError: No JSON object could be decoded.
49 cho phép bạn truy cập vào tất cả các loại thông tin về yêu cầu được thực hiện như tải trọng, URL, tiêu đề, xác thực, v.v.

>>>

$ pipenv install requests
3

Kiểm tra

ValueError: No JSON object could be decoded.
49 cho phép bạn truy cập vào tất cả các loại thông tin về yêu cầu được thực hiện như tải trọng, URL, tiêu đề, xác thực, v.v.

Cho đến nay, bạn đã đưa ra rất nhiều loại yêu cầu khác nhau, nhưng tất cả họ đều có một điểm chung: chúng là những yêu cầu không xác thực đối với API công khai. Nhiều dịch vụ bạn có thể đi qua sẽ muốn bạn xác thực theo một cách nào đó.

>>>

$ pipenv install requests
4

Kiểm tra

ValueError: No JSON object could be decoded.
49 cho phép bạn truy cập vào tất cả các loại thông tin về yêu cầu được thực hiện như tải trọng, URL, tiêu đề, xác thực, v.v.

Cho đến nay, bạn đã đưa ra rất nhiều loại yêu cầu khác nhau, nhưng tất cả họ đều có một điểm chung: chúng là những yêu cầu không xác thực đối với API công khai. Nhiều dịch vụ bạn có thể đi qua sẽ muốn bạn xác thực theo một cách nào đó.

$ pipenv install requests
5

Xác thực

Xác thực giúp một dịch vụ hiểu bạn là ai. Thông thường, bạn cung cấp thông tin đăng nhập của mình cho một máy chủ bằng cách truyền dữ liệu thông qua tiêu đề

ValueError: No JSON object could be decoded.
54 hoặc tiêu đề tùy chỉnh được xác định bởi dịch vụ. Tất cả các chức năng yêu cầu mà bạn đã thấy đến điểm này cung cấp một tham số gọi là
ValueError: No JSON object could be decoded.
55, cho phép bạn vượt qua thông tin đăng nhập của mình.

Một ví dụ về API yêu cầu xác thực là API người dùng được xác thực của GitHub. Điểm cuối này cung cấp thông tin về hồ sơ người dùng được xác thực. Để thực hiện yêu cầu cho API người dùng được xác thực, bạn có thể chuyển tên người dùng và mật khẩu GitHub của mình trong một bộ điều khiển sang

>>> response.status_code
200
7:

Yêu cầu đã thành công nếu thông tin đăng nhập bạn đã chuyển trong tuple cho ValueError: No JSON object could be decoded. 55 là hợp lệ. Nếu bạn cố gắng thực hiện yêu cầu này không có thông tin đăng nhập, bạn sẽ thấy mã trạng thái là ValueError: No JSON object could be decoded. 58:

Khi bạn chuyển tên người dùng và mật khẩu của mình một cách khác với tham số

ValueError: No JSON object could be decoded.
55,
>>> requests.get('https://api.github.com')

8 đang áp dụng thông tin đăng nhập bằng sơ đồ xác thực truy cập cơ bản của HTTP, dưới mui xe.

Do đó, bạn có thể thực hiện cùng một yêu cầu bằng cách truyền thông tin xác thực cơ bản rõ ràng bằng cách sử dụng

ValueError: No JSON object could be decoded.
61:

Mặc dù bạn không cần phải rõ ràng để xác thực cơ bản, bạn có thể muốn xác thực bằng phương pháp khác.

>>> requests.get('https://api.github.com')

8 cung cấp các phương pháp xác thực khác ra khỏi hộp, chẳng hạn như
ValueError: No JSON object could be decoded.
63 và
ValueError: No JSON object could be decoded.
64.

>>>

$ pipenv install requests
6

Kiểm tra

ValueError: No JSON object could be decoded.
49 cho phép bạn truy cập vào tất cả các loại thông tin về yêu cầu được thực hiện như tải trọng, URL, tiêu đề, xác thực, v.v.

Cho đến nay, bạn đã đưa ra rất nhiều loại yêu cầu khác nhau, nhưng tất cả họ đều có một điểm chung: chúng là những yêu cầu không xác thực đối với API công khai. Nhiều dịch vụ bạn có thể đi qua sẽ muốn bạn xác thực theo một cách nào đó.

Xác thực

Xác thực giúp một dịch vụ hiểu bạn là ai. Thông thường, bạn cung cấp thông tin đăng nhập của mình cho một máy chủ bằng cách truyền dữ liệu thông qua tiêu đề ValueError: No JSON object could be decoded. 54 hoặc tiêu đề tùy chỉnh được xác định bởi dịch vụ. Tất cả các chức năng yêu cầu mà bạn đã thấy đến điểm này cung cấp một tham số gọi là ValueError: No JSON object could be decoded. 55, cho phép bạn vượt qua thông tin đăng nhập của mình.

Một ví dụ về API yêu cầu xác thực là API người dùng được xác thực của GitHub. Điểm cuối này cung cấp thông tin về hồ sơ người dùng được xác thực. Để thực hiện yêu cầu cho API người dùng được xác thực, bạn có thể chuyển tên người dùng và mật khẩu GitHub của mình trong một bộ điều khiển sang

>>> response.status_code
200
7:

Yêu cầu đã thành công nếu thông tin đăng nhập bạn đã chuyển trong tuple cho

ValueError: No JSON object could be decoded.
55 là hợp lệ. Nếu bạn cố gắng thực hiện yêu cầu này không có thông tin đăng nhập, bạn sẽ thấy mã trạng thái là
ValueError: No JSON object could be decoded.
58:

>>>

$ pipenv install requests
7

Kiểm tra

ValueError: No JSON object could be decoded.
49 cho phép bạn truy cập vào tất cả các loại thông tin về yêu cầu được thực hiện như tải trọng, URL, tiêu đề, xác thực, v.v.

Cho đến nay, bạn đã đưa ra rất nhiều loại yêu cầu khác nhau, nhưng tất cả họ đều có một điểm chung: chúng là những yêu cầu không xác thực đối với API công khai. Nhiều dịch vụ bạn có thể đi qua sẽ muốn bạn xác thực theo một cách nào đó.

>>>

$ pipenv install requests
8

Nếu yêu cầu thiết lập kết nối trong vòng 2 giây và nhận dữ liệu trong vòng 5 giây sau khi kết nối được thiết lập, thì phản hồi sẽ được trả về như trước đây. Nếu yêu cầu hết thời gian, thì chức năng sẽ tăng ngoại lệ

ValueError: No JSON object could be decoded.
79:

$ pipenv install requests
9

Chương trình của bạn có thể bắt được ngoại lệ

ValueError: No JSON object could be decoded.
79 và trả lời phù hợp.

Đối tượng phiên

Cho đến bây giờ, bạn đã xử lý các API

>>> requests.get('https://api.github.com')

8 cấp cao như
>>> response.status_code
200
7 và
ValueError: No JSON object could be decoded.
83. Các chức năng này là sự trừu tượng của những gì xảy ra khi bạn đưa ra yêu cầu của mình. Họ ẩn các chi tiết thực hiện như cách quản lý kết nối để bạn không phải lo lắng về chúng.

Bên dưới những trừu tượng đó là một lớp gọi là

ValueError: No JSON object could be decoded.
84. Nếu bạn cần tinh chỉnh quyền kiểm soát của mình về cách các yêu cầu được thực hiện hoặc cải thiện hiệu suất của các yêu cầu của bạn, bạn có thể cần sử dụng trực tiếp phiên bản
ValueError: No JSON object could be decoded.
84.

Các phiên được sử dụng để tiếp tục tham số qua các yêu cầu. Ví dụ: nếu bạn muốn sử dụng cùng một xác thực trên nhiều yêu cầu, bạn có thể sử dụng một phiên:

>>> requests.get('https://api.github.com')

0

Mỗi lần bạn đưa ra yêu cầu với

ValueError: No JSON object could be decoded.
86, một khi nó đã được khởi tạo với thông tin xác thực, thông tin đăng nhập sẽ được duy trì.

Tối ưu hóa hiệu suất chính của các phiên xuất hiện dưới dạng kết nối liên tục. Khi ứng dụng của bạn tạo kết nối với máy chủ bằng cách sử dụng

ValueError: No JSON object could be decoded.
84, nó sẽ giữ kết nối đó trong nhóm kết nối. Khi ứng dụng của bạn muốn kết nối với cùng một máy chủ, nó sẽ sử dụng lại kết nối từ nhóm thay vì thiết lập một kết nối mới.

Max thử lại

Khi yêu cầu không thành công, bạn có thể muốn ứng dụng của mình thử lại cùng một yêu cầu. Tuy nhiên,

>>> requests.get('https://api.github.com')

8 sẽ không làm điều này cho bạn theo mặc định. Để áp dụng chức năng này, bạn cần thực hiện một bộ chuyển đổi vận chuyển tùy chỉnh.

Bộ điều hợp vận chuyển cho phép bạn xác định một tập hợp các cấu hình cho mỗi dịch vụ mà bạn đang tương tác. Ví dụ, hãy để nói rằng bạn muốn tất cả các yêu cầu đến

ValueError: No JSON object could be decoded.
89 để thử lại ba lần trước khi cuối cùng tăng
ValueError: No JSON object could be decoded.
90. Bạn sẽ xây dựng một bộ điều hợp vận chuyển, đặt tham số
ValueError: No JSON object could be decoded.
91 của nó và gắn nó vào một
ValueError: No JSON object could be decoded.
84 hiện có:

>>> requests.get('https://api.github.com')

1

Khi bạn gắn

ValueError: No JSON object could be decoded.
93,
ValueError: No JSON object could be decoded.
94, đến
ValueError: No JSON object could be decoded.
86,
ValueError: No JSON object could be decoded.
86 sẽ tuân thủ cấu hình của nó cho mỗi yêu cầu đến https://api.github.com.

Thời gian chờ, bộ điều hợp vận chuyển và phiên là để giữ cho mã của bạn hiệu quả và ứng dụng của bạn kiên cường.

Sự kết luận

Bạn đã đi một chặng đường dài trong việc tìm hiểu về thư viện

>>> requests.get('https://api.github.com')

8 mạnh mẽ của Python.

Bây giờ bạn có thể:

  • Thực hiện các yêu cầu bằng nhiều phương pháp HTTP khác nhau như
    >>> response = requests.get('https://api.github.com')
    
    7,
    >>> response = requests.get('https://api.github.com')
    
    9 và
    ValueError: No JSON object could be decoded.
    
    23
  • Tùy chỉnh các yêu cầu của bạn bằng cách sửa đổi các tiêu đề, xác thực, chuỗi truy vấn và thân thông báo
  • Kiểm tra dữ liệu bạn gửi đến máy chủ và dữ liệu mà máy chủ gửi lại cho bạn
  • Làm việc với xác minh chứng chỉ SSL
  • Sử dụng
    >>> requests.get('https://api.github.com')
    
    
    8 một cách hiệu quả bằng cách sử dụng
    ValueError: No JSON object could be decoded.
    
    91,
    ValueError: No JSON object could be decoded.
    
    76, phiên và bộ điều hợp vận chuyển

Bởi vì bạn đã học cách sử dụng

>>> requests.get('https://api.github.com')

8, bạn đã được trang bị để khám phá thế giới rộng của các dịch vụ web và xây dựng các ứng dụng tuyệt vời bằng cách sử dụng dữ liệu hấp dẫn mà họ cung cấp.

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: thực hiện các yêu cầu HTTP với Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Making HTTP Requests With Python