Piton

Stvorite JSON odgovor u Pythonu

Stvorite JSON odgovor u Pythonu

Datoteka JSON (JavaScript Object Notation) vrlo je popularan medij za razmjenu podataka između različitih formata. Sadrži podatke u tekstualnom formatu koji podržavaju razni jezici kao što su Python, PHP, PERL itd. Glavna svrha JSON datoteke je prijenos podataka između poslužitelja i klijenta. Python generira zahtjeve za dohvaćanje podataka iz određenog URI-ja resursa. Ako se odgovor na zahtjev vrati u JSON formatu, sadržaj odgovora može se dohvatiti pomoću odgovora.json () funkcija. Vraća odgovor pomoću objekta rječnika Python. Kako će se ova funkcija koristiti za raščlanjivanje JSON odgovora pomoću Python knjižnice zahtjeva, prikazat će se u ovom vodiču.

JSON odgovor:

Zahtjevni modul Pythona sadrži JSON dekoder za rad s JSON podacima. Odgovor.json () funkcija vraća JSON odgovor ako JSON dekoder radi ispravno. Odgovor.json () funkcija postavlja iznimku ako JSON dekoder ne uspije, a JSON odgovor ne sadrži nikakve podatke ili nevaljane podatke. Povratna vrijednost odgovora.funkciju raise_for_status () ili odgovor.status_code potrebno je provjeriti prije izvršavanja odgovora.json () funkcija.

Različite upotrebe odgovora.json ():

Tri različite upotrebe odgovora.json () funkcija će biti prikazana u ovom dijelu vodiča.

Primjer-1: Jednostavna upotreba odgovora.json ()

Jednostavna upotreba odgovora.json () funkcija će biti objašnjena u ovom primjeru. Odgovor na zahtjev za URI-jem za dobivanje, https: // api.github.com / pohranjen je u varijablu s imenom odgovor. Zatim se provjerava vrijednost varijable odgovora. Ako varijabla odgovora sadrži nevaljani odgovor, ispisat će poruku o pogrešci. Ako varijabla odgovora sadrži valjani odgovor koji je statusni kôd odgovora i njegov sadržaj, ispisat će se poruka o uspjehu.

# Uvoz zahtjeva modula
zahtjevi za uvoz
# Stvorite zahtjev za dobivanje
odgovor = zahtjevi.get ('https: // api.github.com / ')
# Provjerite odgovor
ako odgovor:
# Ispišite kod statusa odgovora
print ('Statusni kôd odgovora je% d'% odgovor.kod_ statusa)
# Ispis JSON sadržaja
print ('Sadržaj JSON-a je: \ n% s'% odgovor.json ())
# Ispišite poruku o uspjehu
print ('\ nZahtjev je uspješno obrađen.')
drugo:
# Ispišite poruku pogreške za nevaljani odgovor
print ('Neispravan odgovor.')

Izlaz:

Sljedeći će se izlaz pojaviti nakon izvršavanja gornje skripte.

Primjer-2: Upotreba odgovora.json () s rukovanjem iznimkama

Način korištenja odgovora.json () funkcija s rukovanjem iznimkama bit će prikazana u ovom primjeru. Modul HttpError uvezen je s modulom zahtjeva u skripti radi obrade iznimke. Ovdje će se korisniku koristiti URI adresa za upotrebu zahtjeva.get () funkcija. Odgovor ovog zahtjeva pohranit će se u varijablu odgovora. Dalje, odgovor.Funkcija rise_for_status () koristi se za provjeru odgovora na zahtjev je li valjan ili nevaljan. Ako je odgovor nevaljan, generirat će se iznimka i na temelju iznimke izvršit će se kôd bilo kojeg bloka osim. Ako je odgovor valjan, tada će se sadržaj varijable odgovora ponoviti pomoću petlje for za ispis vrijednosti rječnika u svakom retku koji sadrži podatke o odgovoru.

# Uvoz zahtjeva modula
zahtjevi za uvoz
# Uvezite HTTPError za rukovanje iznimkama
iz zahtjeva.iznimke uvoz HTTPError
# Definirajte URI
uri = input ('Unesite važeći URI: \ n')
# Ispis poruke na čekanju
print ('Čekanje odgovora ... \ n')
probati:
# Stvorite zahtjev za preuzimanje za čitanje sadržaja feeda github-a
odgovor = zahtjevi.dobiti (uri)
# Povećajte iznimku ako je odgovor bio neuspješan
odgovor.podići_za_status ()
# Pročitajte JSON sadržaj
jsonResponse = odgovor.json ()
print ("Sadržaj JSON-a je: \ n")
# Pročitajte i ispišite svaki par ključ / vrijednost iz odgovora JSON
za ključ, vrijednost u jsonResponse.stavke ():
ispis (ključ, ":", vrijednost)
# Ispis poruke o pogrešci za HTTP pogrešku
osim HTTPError kao http_err:
ispis ('Dogodila se HTTP pogreška:% s'% http_err)
# Ispis poruke o pogrešci za HTTP pogrešku
osim iznimke kao pogreške:
print ('Došlo je do druge pogreške:% s'% pogreške)

Izlaz:

Sljedeći će se izlaz pojaviti nakon izvršavanja skripte kada korisnik pruži nepostojeću vrijednost URI-ja. Ovdje je generirana iznimka HTTPError uz odgovarajuću poruku o pogrešci.


Sljedeći će se izlaz pojaviti nakon izvršavanja skripte kada korisnik navede nevažeću vrijednost URI-ja. Ovdje je generirana druga iznimka s odgovarajućom porukom o pogrešci.

Sljedeći će se izlaz pojaviti nakon izvršavanja skripte kada će korisnik dati valjanu vrijednost URI-ja. Ovdje je JSON sadržaj pravilno ispisan.

Primjer-3: Upotreba odgovora.json () s nizom upita

Način korištenja odgovora.json () funkcija s nizom upita bit će prikazana u ovom primjeru. Evo, zahtjevi.get () funkcija koristi vrijednost niza upita s URI-jem koristeći paramere. Pretražit će unose za jezik PERL u danim spremištima. Ako varijabla odgovora sadrži valjani odgovor, tada će se ispisati ime i opis spremišta, inače će se pojaviti poruka o pogrešci.

# Uvoz zahtjeva modula
zahtjevi za uvoz
# Pretraživanje u github-ovom spremištu pomoću niza upita
odgovor = zahtjevi.dobiti(
'https: // api.github.com / search / repozitoriji ',
params = 'q': 'zahtjevi + jezik: perl',
)
# Provjerite odgovor
ako odgovor:
# Pročitajte JSON sadržaj
json_response = odgovor.json ()
# Pročitajte određenu stavku spremišta
spremište = json_response ['stavke'] [0]
# Ispišite naziv spremišta
print ('Naziv spremišta:% s'% spremište ["naziv"])
# Ispišite opis spremišta
print ('Opis spremišta:% s'% spremišta ["opis"])
drugo:
# Ispišite poruku pogreške za nevaljani odgovor
print ('Neispravan odgovor.')

Izlaz:

Sljedeći će se izlaz pojaviti nakon izvršavanja gornje skripte. Ovdje su tiskani naziv spremišta i opis za jezik PERL.

Zaključak:

Različiti načini slanja zahtjeva na određeni URI i čitanje odgovora pomoću odgovora.json () funkcija prikazana je u ovom vodiču na jednostavnim primjerima. Nadam se da će ovaj vodič pomoći čitateljima da razumiju upotrebu JSON odgovora u Pythonu i da ga pravilno primijene u svojoj skripti kada je potreban.

Najbolje igre naredbenog retka za Linux
Naredbeni redak nije samo vaš najveći saveznik pri korištenju Linuxa - on također može biti izvor zabave jer ga možete koristiti za igranje mnogih zab...
Najbolje aplikacije za mapiranje gamepada za Linux
Ako volite igrati igre na Linuxu s gamepadom umjesto tipičnim sustavom za unos tipkovnice i miša, za vas postoji nekoliko korisnih aplikacija. Mnoge r...
Korisni alati za Linux igrače
Ako volite igrati igre na Linuxu, velika je vjerojatnost da ste možda koristili aplikacije i uslužne programe poput Wine, Lutris i OBS Studio za pobol...