Python

Opret et JSON-svar i Python

Opret et JSON-svar i Python

JSON (JavaScript Object Notation) -fil er et meget populært medium til at udveksle data mellem forskellige formater. Den indeholder data i tekstformat, der understøttes af forskellige sprog som Python, PHP, PERL osv. Hovedformålet med JSON-filen er at overføre data mellem serveren og klienten. Anmodningerne genereres af Python for at hente dataene fra en bestemt ressource-URI. Hvis svaret på anmodningen returneres i JSON-format, kan svarets indhold hentes ved hjælp af svaret.json () funktion. Det returnerer svaret ved hjælp af et Python-ordbogobjekt. Hvordan denne funktion kan bruges til at analysere JSON-svar ved hjælp af Python-anmodningsbiblioteket, vises i denne vejledning.

JSON-svar:

Anmodningsmodulet i Python indeholder JSON-dekoderen til at arbejde med JSON-dataene. Svaret.json () -funktionen returnerer et JSON-svar, hvis JSON-dekoderen fungerer korrekt. Svaret.json () -funktionen hæver undtagelsen, hvis JSON-dekoderen mislykkes, og JSON-svaret ikke indeholder nogen data eller ugyldige data. Returværdien af ​​svaret.raise_for_status () funktion eller svaret.status_code skal kontrolleres, før svaret udføres.json () funktion.

Forskellige anvendelser af respons.json ():

Tre forskellige anvendelser af svaret.json () -funktionen vises i denne del af selvstudiet.

Eksempel 1: Enkel brug af svar.json ()

Den enkle brug af svaret.json () -funktionen vil blive beskrevet i dette eksempel. Svaret på URI's get-anmodning, https: // api.github.com / er gemt i en variabel, der hedder svar. Dernæst kontrolleres værdien af ​​responsvariablen. Hvis svarvariablen indeholder et ugyldigt svar, vil den udskrive en fejlmeddelelse. Hvis svarvariablen indeholder et gyldigt svar, der er statuskoden for svaret og dets indhold, udskrives en succesmeddelelse.

# Importmodulmodul
importanmodninger
# Opret en få anmodning
svar = anmodninger.get ('https: // api.github.com / ')
# Kontroller svaret
hvis svar:
# Udskriv svarstatuskoden
print ('Statuskoden for svaret er% d'% svar.status_code)
# Udskriv JSON-indholdet
print ('JSON-indholdet er: \ n% s'% svar.json ())
# Udskriv succesmeddelelsen
print ('\ nForespørgslen håndteres med succes.')
andet:
# Udskriv fejlmeddelelsen for det ugyldige svar
print ('Ugyldigt svar.')

Produktion:

Følgende output vises efter udførelse af ovenstående script.

Eksempel 2: Brug af svar.json () med undtagelse af håndtering

Måden at bruge svaret på.json () -funktion med undtagelseshåndtering vises i dette eksempel. HttpError-modul importeres med anmodningsmodulet i scriptet for at håndtere undtagelsen. Her vil URI-adressen blive taget fra brugeren til at bruge anmodningerne.få () funktion. Svaret på denne anmodning gemmes i svarvariablen. Dernæst svar.raise_for_status () funktion bruges til at kontrollere svaret på anmodningen, om den er gyldig eller ugyldig. Hvis svaret er ugyldigt, genereres en undtagelse, og koden for enhver undtagelsesblok udføres baseret på undtagelsen. Hvis svaret er gyldigt, gentages svarvariabelens indhold ved hjælp af en for-løkke til at udskrive værdierne i ordbogen i hver linje, der indeholder svardataene.

# Importmodulmodul
importanmodninger
# Importer HTTPError til undtagelseshåndtering
fra anmodninger.undtagelser importerer HTTPError
# Definer URI
uri = input ('Indtast en gyldig URI: \ n')
# Udskriv ventende besked
print ('Venter på svaret ... \ n')
prøve:
# Opret en get anmodning om at læse feeds indhold af github
svar = anmodninger.få (uri)
# Forøg undtagelsen, hvis svaret mislykkedes
respons.hæve_for_status ()
# Læs JSON-indholdet
jsonResponse = svar.json ()
print ("JSON-indholdet er: \ n")
# Læs og udskriv hvert nøgleværdipar fra JSON-svaret
for nøgle, værdi i jsonResponse.varer ():
print (nøgle, ":", værdi)
# Udskriv fejlmeddelelse for HTTP-fejlen
undtagen HTTPError som http_err:
print ('HTTP-fejl opstod:% s'% http_err)
# Udskriv fejlmeddelelse for HTTP-fejlen
undtagen undtagelse som fejlagtig:
print ('Andre fejl opstod:% s'% err)

Produktion:

Følgende output vises efter udførelse af scriptet, når en ikke-eksisterende URI-værdi vil blive leveret af brugeren. Her var HTTPError-undtagelsen genereret sammen med den tilsvarende fejlmeddelelse.


Følgende output vises efter udførelse af scriptet, når en ugyldig URI-værdi leveres af brugeren. Her var den anden undtagelse genereret med en tilsvarende fejlmeddelelse.

Følgende output vises efter udførelse af scriptet, når en gyldig URI-værdi vil blive leveret af brugeren. Her er JSON-indholdet blevet udskrevet korrekt.

Eksempel 3: Brug af svar.json () med forespørgselsstreng

Måden at bruge svaret på.json () funktion med forespørgselsstreng vises i dette eksempel. Her, anmodningerne.get () -funktionen brugte en forespørgselsstrengværdi med URI ved hjælp af params. Det søger i PERL-sprogene i de givne arkiver. Hvis svarvariablen indeholder et gyldigt svar, udskrives lagernavnet og beskrivelsen, ellers vil der være en fejlmeddelelse.

# Importmodulmodul
importanmodninger
# Søgning i githubs lager ved hjælp af forespørgselsstreng
svar = anmodninger.få(
'https: // api.github.com / search / repositories ',
params = 'q': 'anmodninger + sprog: perl',
)
# Kontroller svaret
hvis svar:
# Læs JSON-indholdet
json_response = svar.json ()
# Læs det bestemte lagerelement
repository = json_response ['items'] [0]
# Udskriv lagerets navn
print ('Repository name:% s'% repository ["name"])
# Udskriv lagerbeskrivelsen
print ('Lagringsbeskrivelse:% s'% lager ["beskrivelse"])
andet:
# Udskriv fejlmeddelelsen for det ugyldige svar
print ('Ugyldigt svar.')

Produktion:

Følgende output vises efter udførelse af ovenstående script. Lagringsnavnet og beskrivelsen for PERL-sproget var blevet trykt her.

Konklusion:

Forskellige måder at sende anmodningen til en bestemt URI og læse svaret ved hjælp af svaret.json () -funktionen blev vist i denne vejledning ved hjælp af enkle eksempler. Jeg håber, at denne tutorial hjælper læserne med at forstå brugen af ​​JSON-respons i Python og anvende det korrekt i deres script, når det er nødvendigt.

Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...
Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...