Python

Ustvarite odgovor JSON v Pythonu

Ustvarite odgovor JSON v Pythonu

Datoteka JSON (JavaScript Object Notation) je zelo priljubljen medij za izmenjavo podatkov med različnimi formati. Vsebuje podatke v besedilni obliki, ki jo podpirajo različni jeziki, kot so Python, PHP, PERL itd. Glavni namen datoteke JSON je prenos podatkov med strežnikom in odjemalcem. Zahteve generira Python za pridobivanje podatkov iz določenega URI vira. Če je odgovor na zahtevo vrnjen v obliki JSON, je mogoče vsebino odgovora pridobiti z uporabo odgovora.json (). Vrne odziv z uporabo predmeta slovarja Python. Kako bo to funkcijo mogoče uporabiti za razčlenitev odgovora JSON s pomočjo knjižnice zahtev Python, bo prikazano v tej vadnici.

Odgovor JSON:

Zahtevni modul Pythona vsebuje dekoder JSON za delo s podatki JSON. Odziv.json () vrne odziv JSON, če dekoder JSON deluje pravilno. Odziv.json () sproži izjemo, če dekoder JSON ne uspe in odgovor JSON ne vsebuje nobenih podatkov ali neveljavnih podatkov. Vrnjena vrednost odziva.funkcijo rise_for_status () ali odziv.kodo_ statusa je treba preveriti pred izvajanjem odgovora.json ().

Različne uporabe odziva.json ():

Tri različne uporabe odziva.json () funkcija bo prikazana v tem delu vadnice.

Primer-1: Preprosta uporaba odziva.json ()

Preprosta uporaba odziva.json () bo v tem primeru predstavljena funkcija. Odgovor na zahtevo za pridobitev URI-ja, https: // api.github.com / je shranjen v spremenljivki z imenom response. Nato se preveri vrednost spremenljivke odziva. Če spremenljivka odziva vsebuje neveljaven odziv, bo natisnila sporočilo o napaki. Če spremenljivka odziva vsebuje veljaven odgovor, ki je statusna koda odziva in njegova vsebina, se bo natisnilo sporočilo o uspehu.

# Modul zahtev za uvoz
zahteve za uvoz
# Ustvari zahtevo za pridobitev
odgovor = zahteve.get ('https: // api.github.com / ')
# Preverite odziv
če odgovor:
# Natisnite kodo stanja odziva
print ('Koda stanja odgovora je% d'% odziv.status_code)
# Natisnite vsebino JSON
print ('Vsebina JSON je: \ n% s'% odziv.json ())
# Natisnite sporočilo o uspehu
print ('\ nZahteva je uspešno obdelana.')
sicer:
# Natisnite sporočilo o napaki za neveljaven odgovor
print ('Neveljaven odgovor.')

Izhod:

Naslednji izhod se bo prikazal po izvedbi zgornjega skripta.

Primer-2: Uporaba odziva.json () z obdelavo izjem

Način uporabe odziva.V tem primeru bo prikazana funkcija json () z obdelavo izjem. Za obdelavo izjeme se modul HttpError uvozi z modulom zahteve v skriptu. Tu bo uporabniku za uporabo zahtev odvzet naslov URI.get () funkcija. Odgovor na to zahtevo bo shranjen v spremenljivki odziva. Nato odgovor.Funkcija rise_for_status () se uporablja za preverjanje odziva zahteve, ali je veljaven ali neveljaven. Če je odgovor neveljaven, se ustvari izjema in na podlagi izjeme se izvede koda katerega koli bloka razen. Če je odgovor veljaven, se vsebina spremenljivke odziva ponovi s pomočjo zanke for za tiskanje vrednosti slovarja v vsako vrstico, ki vsebuje podatke o odzivu.

# Modul zahtev za uvoz
zahteve za uvoz
# Uvozi napako HTTPError za obdelavo izjem
iz zahtev.izjeme uvozi HTTPError
# Določite URI
uri = input ('Vnesite veljaven URI: \ n')
# Natisnite čakajoče sporočilo
print ('Čakanje na odgovor ... \ n')
poskusite:
# Ustvarite zahtevo za branje vsebine virov github
odgovor = zahteve.dobili (uri)
# Povečajte izjemo, če je bil odgovor neuspešen
odziv.dvigni_za_status ()
# Preberite vsebino JSON
jsonResponse = odgovor.json ()
print ("Vsebina JSON je: \ n")
# Preberite in natisnite vsak par ključ-vrednost iz odgovora JSON
za ključ, vrednost v jsonResponse.postavke ():
tisk (ključ, ":", vrednost)
# Natisnite sporočilo o napaki za napako HTTP
razen HTTPError kot http_err:
print ('Napaka HTTP:% s'% http_err)
# Natisnite sporočilo o napaki za napako HTTP
razen Izjema kot napaka:
print ('Prišlo je do druge napake:% s'% napake)

Izhod:

Naslednji izhod se bo prikazal po izvedbi skripta, ko bo uporabnik zagotovil neobstoječo vrednost URI. Tu je bila poleg ustreznega sporočila o napaki ustvarjena izjema HTTPError.


Naslednji izhod se bo prikazal po izvedbi skripta, ko bo uporabnik navedel neveljavno vrednost URI. Tu je bila ustvarjena druga izjema z ustreznim sporočilom o napaki.

Naslednji izhod se bo prikazal po izvedbi skripta, ko bo uporabnik navedel veljavno vrednost URI. Tu je vsebina JSON pravilno natisnjena.

Primer-3: Uporaba odziva.json () z nizom poizvedbe

Način uporabe odziva.json () funkcija z nizom poizvedbe bo prikazana v tem primeru. Tukaj so zahteve.funkcija get () je uporabila vrednost niza poizvedbe z URI z uporabo parametrov. Iskal bo vnose za jezik PERL v danih repozitorijih. Če spremenljivka odziva vsebuje veljaven odgovor, se natisneta ime in opis repozitorija, sicer se prikaže sporočilo o napaki.

# Modul zahtev za uvoz
zahteve za uvoz
# Iskanje v githubovem repozitoriju z uporabo poizvedbenega niza
odgovor = zahteve.dobili (
'https: // api.github.com / search / repositories ',
params = 'q': 'zahteve + jezik: perl',
)
# Preverite odziv
če odgovor:
# Preberite vsebino JSON
json_response = odgovor.json ()
# Preberite določen element repozitorija
repozitorij = json_response ['items'] [0]
# Natisnite ime skladišča
print ('Ime skladišča:% s'% skladišče ["ime"])
# Natisnite opis skladišča
print ('Opis repozitorija:% s'% repozitorij ["opis"])
sicer:
# Natisnite sporočilo o napaki za neveljaven odgovor
print ('Neveljaven odgovor.')

Izhod:

Naslednji izhod se bo prikazal po izvedbi zgornjega skripta. Tu je bilo natisnjeno ime skladišča in opis za jezik PERL.

Zaključek:

Različni načini za pošiljanje zahteve na določen URI in branje odziva z uporabo odgovora.json () funkcija je bila prikazana v tej vadnici na preprostih primerih. Upam, da bo ta vadnica bralcem pomagala razumeti uporabo odgovora JSON v Pythonu in ga pravilno uporabiti v svojem skriptu, ko bo to potrebno.

Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...
Kako namestiti in igrati Doom v Linuxu
Uvod v Doom Serija Doom je nastala v devetdesetih letih po izidu prvotnega Dooma. Bil je takojšen hit in od takrat naprej je serija iger prejela števi...
Vulkan za uporabnike Linuxa
Z vsako novo generacijo grafičnih kart vidimo, da razvijalci iger premikajo meje grafične zvestobe in se približujejo fotorealizmu. A kljub vsem kredi...