Utwórz odpowiedź JSON w Pythonie

Utwórz odpowiedź JSON w Pythonie

Plik JSON (JavaScript Object Notation) jest bardzo popularnym medium do wymiany danych między różnymi formatami. Zawiera dane w formacie tekstowym obsługiwanym przez różne języki, takie jak Python, PHP, Perl itp. Głównym celem pliku JSON jest przesyłanie danych między serwerem a klientem. Wnioski są generowane przez Pythona w celu odzyskania danych z określonego URI zasobów. Jeśli odpowiedź żądania zostanie zwrócona w formacie JSON, zawartość odpowiedzi można odzyskać za pomocą odpowiedzi.funkcja JSON (). Zwraca odpowiedź za pomocą obiektu słownika Pythona. Jak można użyć tej funkcji do analizowania odpowiedzi JSON za pomocą biblioteki żądań Pythona, zostanie pokazana w tym samouczku.

Odpowiedź JSON:

Moduł żądania Pythona zawiera dekoder JSON do pracy z danymi JSON. Odpowiedź.funkcja JSON () zwraca odpowiedź JSON, jeśli dekoder JSON działa poprawnie. Odpowiedź.Funkcja JSON () podnosi wyjątek, jeśli dekoder JSON się nie powiedzie, a odpowiedź JSON nie zawiera żadnych danych ani nieprawidłowych danych. Wartość zwracana odpowiedzi.Funkcja Raise_For_Status () lub odpowiedź.STATH_CODE należy sprawdzić przed wykonaniem odpowiedzi.funkcja JSON ().

Różne zastosowania odpowiedzi.JSON ():

Trzy różne zastosowania odpowiedzi.funkcja JSON () zostanie pokazana w tej części samouczka.

Przykład-1: Proste użycie odpowiedzi.JSON ()

Proste użycie odpowiedzi.funkcja JSON () zostanie wyjaśniona w tym przykładzie. Odpowiedź na żądanie GET URI, https: // API.github.com/ jest przechowywany w zmiennej o nazwie odpowiedź. Następnie sprawdzana jest wartość zmiennej odpowiedzi. Jeśli zmienna odpowiedzi zawiera jakąkolwiek nieprawidłową odpowiedź, wówczas wydrukuje komunikat o błędzie. Jeśli zmienna odpowiedzi zawiera prawidłową odpowiedź, która jest kodem stanu odpowiedzi, a jej treść będzie wydrukować komunikat sukcesu.

# Import żądań modułu
żądania importu
# Utwórz żądanie GET
Odpowiedź = żądania.get ('https: // api.github.com/')
# Sprawdź odpowiedź
Jeśli odpowiedź:
# Wydrukuj kod stanu odpowiedzi
Drukuj („Kod stanu odpowiedzi jest %d ' %odpowiedź.Kod statusu)
# Wydrukuj treść JSON
Drukuj („zawartość JSON to: \ n %s ' %odpowiedź.JSON ())
# Wydrukuj wiadomość sukcesu
print („żądanie jest pomyślnie obsługiwane.')
w przeciwnym razie:
# Wydrukuj komunikat o błędzie dla nieprawidłowej odpowiedzi
Drukuj („Nieprawidłowa odpowiedź.')

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu.

Przykład-2: użycie odpowiedzi.JSON () z obsługą wyjątków

Sposób korzystania z odpowiedzi.Funkcja JSON () z obsługą wyjątków zostanie pokazana w tym przykładzie. Moduł httperror jest importowany z modułem żądania w skrypcie, aby obsłużyć wyjątek. Tutaj adres URI zostanie pobrany od użytkownika do korzystania z żądań.get () funkcja. Odpowiedź tego żądania zostanie zapisana w zmiennej odpowiedzi. Następnie odpowiedź.funkcja Raise_For_status () służy do sprawdzenia odpowiedzi żądania, niezależnie od tego, czy jest ona ważna, czy nieprawidłowa. Jeśli odpowiedź jest nieprawidłowa, zostanie wygenerowany wyjątek, a kod dowolnego z wyjątkiem bloku zostanie wykonany na podstawie wyjątku. Jeśli odpowiedź jest poprawna, wówczas zawartość zmiennej odpowiedzi zostanie iterowana przy użyciu pętli do wydrukowania wartości słownika w każdym wierszu, który zawiera dane odpowiedzi.

# Import żądań modułu
żądania importu
# Importuj httperror do obsługi wyjątków
z żądań.Wyjątki importuj httperror
# Zdefiniuj URI
URI = wejście („Wprowadź prawidłowy URI: \ n ')
# Wydrukuj wiadomość oczekującą
Drukuj („Czekam na odpowiedź… \ n”)
próbować:
# Utwórz żądanie GET, aby odczytać treść kanałów GitHub
Odpowiedź = żądania.Get (URI)
# Podnieś wyjątek, jeśli odpowiedź się nie powiodła
odpowiedź.Raise_for_status ()
# Przeczytaj treść JSON
jsonResponse = odpowiedź.JSON ()
Drukuj („Zawartość JSON to: \ n”)
# Przeczytaj i wydrukuj każdą parę wartości kluczowej z odpowiedzi JSON
dla klucza, wartość w JSONRESPONES.rzeczy():
print (klucz, „:”, wartość)
# Wydrukuj komunikat o błędzie dla błędu HTTP
Z wyjątkiem httperror jako http_err:
Drukuj (wystąpił błąd HTTP: %s ' %http_err)
# Wydrukuj komunikat o błędzie dla błędu HTTP
z wyjątkiem wyjątku jako ERR:
Drukuj („wystąpił inny błąd: %s ' %err)

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu skryptu, gdy użytkownik zostanie dostarczony wartość URI nieistnienia. Tutaj wyjątek httperror został wygenerowany wraz z odpowiednim komunikatem o błędzie.


Następujące dane wyjściowe pojawią się po wykonaniu skryptu, gdy użytkownik zostanie dostarczony nieprawidłowa wartość URI. Tutaj drugi wyjątek został wygenerowany z odpowiednim komunikatem o błędzie.

Następujące dane wyjściowe pojawią się po wykonaniu skryptu, gdy użytkownik zostanie dostarczony prawidłowej wartości URI. Tutaj treść JSON została poprawnie wydrukowana.

Przykład-3: użycie odpowiedzi.JSON () z ciągiem zapytania

Sposób korzystania z odpowiedzi.Funkcja JSON () z ciągiem zapytania zostanie pokazana w tym przykładzie. Tutaj żądania.Funkcja get () użyła wartości ciągów zapytań z URI za pomocą Params. Będzie przeszukiwać wpisy języka Perla w danych repozytoriach. Jeśli zmienna odpowiedzi zawiera prawidłową odpowiedź, nazwa i opis repozytorium zostaną wydrukowane, w przeciwnym razie będzie komunikat o błędzie.

# Import żądań modułu
żądania importu
# Wyszukiwanie w repozytorium Github za pomocą ciągu zapytania
Odpowiedź = żądania.Dostawać(
„https: // API.github.com/Search/Repositories ',
params = 'q': 'żądania+język: perl',
)
# Sprawdź odpowiedź
Jeśli odpowiedź:
# Przeczytaj treść JSON
Json_Response = odpowiedź.JSON ()
# Przeczytaj konkretny element repozytorium
Repository = json_response ['Items'] [0]
# Wydrukuj nazwę repozytorium
print („Nazwa repozytorium: %s ' %repozytorium [„ nazwa ”])
# Wydrukuj opis repozytorium
print („Opis repozytorium: %s ' %repozytorium [„ Opis ”])
w przeciwnym razie:
# Wydrukuj komunikat o błędzie dla nieprawidłowej odpowiedzi
Drukuj („Nieprawidłowa odpowiedź.')

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Nazwa repozytorium i opis języka Perla został wydrukowany tutaj.

Wniosek:

Różne sposoby wysyłania żądania do konkretnego URI i odczytania odpowiedzi za pomocą odpowiedzi.Funkcja JSON () pokazano w tym samouczku przy użyciu prostych przykładów. Mam nadzieję, że ten samouczek pomoże czytelnikom zrozumieć użycie odpowiedzi JSON w Pythonie i odpowiednio zastosować go w ich skrypcie, gdy jest to wymagane.