Python

Lag et JSON-svar i Python

Lag et JSON-svar i Python

JSON (JavaScript Object Notation) -fil er et veldig populært medium for å utveksle data mellom forskjellige formater. Den inneholder data i tekstformat som støttes av forskjellige språk som Python, PHP, PERL, etc. Hovedformålet med JSON-filen er å overføre data mellom serveren og klienten. Forespørslene genereres av Python for å hente dataene fra en bestemt ressurs-URI. Hvis svaret på forespørselen returneres i JSON-format, kan innholdet i svaret hentes ved hjelp av svaret.json () -funksjon. Den returnerer svaret ved hjelp av et Python-ordbokobjekt. Hvordan denne funksjonen kan brukes til å analysere JSON-svar ved hjelp av Python-forespørselsbiblioteket, vil bli vist i denne veiledningen.

JSON-svar:

Forespørselsmodulen til Python inneholder JSON-dekoderen for å jobbe med JSON-dataene. Responsen.json () -funksjonen returnerer et JSON-svar hvis JSON-dekoderen fungerer som den skal. Responsen.json () -funksjonen hever unntaket hvis JSON-dekoderen mislykkes og JSON-svaret ikke inneholder noen data eller ugyldige data. Returverdien til svaret.raise_for_status () -funksjonen eller svaret.status_code må kontrolleres før svaret utføres.json () -funksjon.

Ulike bruksområder for respons.json ():

Tre forskjellige bruksområder for responsen.json () -funksjonen vises i denne delen av opplæringen.

Eksempel 1: Enkel bruk av respons.json ()

Den enkle bruken av responsen.json () -funksjonen vil bli beskrevet i dette eksemplet. Svaret for URI-anmodningen, https: // api.github.com / lagres i en variabel som heter respons. Deretter blir verdien på responsvariabelen sjekket. Hvis svarvariabelen inneholder et ugyldig svar, vil den skrive ut en feilmelding. Hvis svarvariabelen inneholder et gyldig svar som er statuskoden for svaret og innholdet, vil en suksessmelding skrives ut.

# Importer forespørselsmodul
importforespørsler
# Opprett en få forespørsel
svar = forespørsler.få ('https: // api.github.com / ')
# Sjekk svaret
hvis svar:
# Skriv ut svarstatuskoden
print ('Statuskoden for svaret er% d'% respons.status_code)
# Skriv ut JSON-innholdet
print ('JSON-innholdet er: \ n% s'% respons.json ())
# Skriv ut suksessmeldingen
print ('\ nForespørselen blir håndtert.')
ellers:
# Skriv ut feilmeldingen for det ugyldige svaret
print ('Ugyldig respons.')

Produksjon:

Følgende utdata vises etter å ha utført skriptet ovenfor.

Eksempel 2: Bruk av respons.json () med unntakshåndtering

Måten å bruke responsen på.json () -funksjon med unntakshåndtering vises i dette eksemplet. HttpError-modulen importeres med forespørselsmodulen i skriptet for å håndtere unntaket. Her vil URI-adressen hentes fra brukeren for å bruke forespørslene.få () funksjon. Svaret på denne forespørselen vil bli lagret i svarvariabelen. Neste svar.raise_for_status () -funksjonen brukes til å sjekke svaret på forespørselen om den er gyldig eller ugyldig. Hvis svaret er ugyldig, vil et unntak bli generert, og koden til en hvilken som helst unntatt blokk vil bli utført basert på unntaket. Hvis svaret er gyldig, vil innholdet i responsvariabelen bli iterert ved hjelp av en for-løkke for å skrive ut verdiene til ordboken på hver linje som inneholder svardataene.

# Importforespørselsmodul
importforespørsler
# Importer HTTPError for unntakshåndtering
fra forespørsler.unntak importerer HTTPError
# Definer URI
uri = input ('Skriv inn en gyldig URI: \ n')
# Skriv ut ventemelding
skriv ut ('Venter på svaret ... \ n')
prøve:
# Opprett en få forespørsel om å lese innholdet i github
svar = forespørsler.få (uri)
# Hev unntak hvis svaret ikke lyktes
respons.raise_for_status ()
# Les JSON-innholdet
jsonResponse = svar.json ()
skriv ut ("JSON-innholdet er: \ n")
# Les og skriv ut hvert nøkkelverdipar fra JSON-svaret
for nøkkel, verdi i jsonResponse.gjenstander ():
skriv ut (nøkkel, ":", verdi)
# Skriv ut feilmelding for HTTP-feilen
unntatt HTTPError som http_err:
utskrift ('HTTP-feil oppstod:% s'% http_err)
# Skriv ut feilmelding for HTTP-feilen
unntatt unntak som feil:
print ('Andre feil oppstod:% s'% err)

Produksjon:

Følgende utdata vises etter utførelsen av skriptet når en ikke-eksisterende URI-verdi vil bli gitt av brukeren. Her hadde HTTPError-unntaket blitt generert ved siden av den tilsvarende feilmeldingen.


Følgende utdata vises etter utførelsen av skriptet når en ugyldig URI-verdi vil bli gitt av brukeren. Her hadde det andre unntaket blitt generert med en tilsvarende feilmelding.

Følgende utdata vises etter utførelsen av skriptet når en gyldig URI-verdi vil bli gitt av brukeren. Her er JSON-innholdet skrevet ut riktig.

Eksempel 3: Bruk av respons.json () med spørringsstreng

Måten å bruke responsen på.json () -funksjon med spørringsstreng vises i dette eksemplet. Her, forespørslene.get () -funksjonen brukte en spørringsstrengverdi med URI ved hjelp av params. Den vil søke i oppføringene etter PERL-språket i de gitte arkivene. Hvis svarvariabelen inneholder et gyldig svar, skrives navnet på beskrivelsen og beskrivelsen, ellers vil det være en feilmelding.

# Importforespørselsmodul
importforespørsler
# Søker i githubs lager ved hjelp av spørringsstreng
svar = forespørsler.få(
'https: // api.github.no / search / repositories ',
params = 'q': 'forespørsler + språk: perl',
)
# Sjekk svaret
hvis svar:
# Les JSON-innholdet
json_response = svar.json ()
# Les det aktuelle depotelementet
repository = json_response ['items'] [0]
# Skriv ut navnet på depotet
print ('Repository name:% s'% repository ["name"])
# Skriv ut depotbeskrivelsen
skriv ut ('Databasebeskrivelse:% s'% depot ["beskrivelse"])
ellers:
# Skriv ut feilmeldingen for det ugyldige svaret
print ('Ugyldig respons.')

Produksjon:

Følgende utdata vises etter å ha utført skriptet ovenfor. Datalagernavnet og beskrivelsen for PERL-språket hadde blitt skrevet ut her.

Konklusjon:

Ulike måter å sende forespørselen til en bestemt URI og lese svaret ved hjelp av svaret.json () -funksjonen ble vist i denne opplæringen ved hjelp av enkle eksempler. Jeg håper denne opplæringen vil hjelpe leserne til å forstå bruken av JSON-respons i Python og bruke den riktig i skriptet når det er nødvendig.

Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...