Python

Izveidojiet JSON atbildi Python

Izveidojiet JSON atbildi Python

JSON (JavaScript Object Notation) fails ir ļoti populārs līdzeklis datu apmaiņai starp dažādiem formātiem. Tas satur datus teksta formātā, ko atbalsta dažādas valodas, piemēram, Python, PHP, PERL utt. JSON faila galvenais mērķis ir datu pārsūtīšana starp serveri un klientu. Pieprasījumus ģenerē Python, lai izgūtu datus no noteikta resursa URI. Ja pieprasījuma atbilde tiek atgriezta JSON formātā, atbildes saturu var izgūt, izmantojot atbildi.json () funkcija. Tas atgriež atbildi, izmantojot objektu Python vārdnīca. Kā šo funkciju var izmantot, lai parsētu JSON atbildi, izmantojot Python pieprasījumu bibliotēku, tiks parādīts šajā apmācībā.

JSON atbilde:

Python pieprasījumu modulis satur JSON dekodētāju darbam ar JSON datiem. Atbilde.Funkcija json () atgriež JSON atbildi, ja JSON dekodētājs darbojas pareizi. Atbilde.Funkcija json () rada izņēmumu, ja JSON dekodētājs neizdodas un JSON atbilde nesatur datus vai nederīgus datus. Atbildes atgriešanās vērtība.function_for_status () vai atbildi.status_code ir jāpārbauda pirms atbildes izpildes.json () funkcija.

Dažādi reakcijas izmantošanas veidi.json ():

Trīs dažādi atbildes izmantošanas veidi.Šajā apmācības daļā tiks parādīta funkcija json ().

1. piemērs: vienkārša atbildes izmantošana.json ()

Atbildes vienkārša izmantošana.Šajā piemērā tiks izskaidrota funkcija json (). Atbilde uz URI saņemšanas pieprasījumu https: // api.github.com / tiek saglabāts mainīgajā ar nosaukumu atbilde. Pēc tam tiek pārbaudīta atbildes mainīgā vērtība. Ja atbildes mainīgajā ir nederīga atbilde, tas izdrukās kļūdas ziņojumu. Ja atbildes mainīgajā ir derīga atbilde, kas ir atbildes statusa kods, un tās saturs, tiks izdrukāts veiksmes ziņojums.

# Importa pieprasījumu modulis
importa pieprasījumi
# Izveidojiet saņemšanas pieprasījumu
atbilde = pieprasījumi.get ('https: // api.github.com / ')
# Pārbaudiet atbildi
ja atbilde:
# Izdrukājiet atbildes statusa kodu
print ('Atbildes statusa kods ir% d'% atbilde.statusa kods)
# Izdrukājiet JSON saturu
print ('JSON saturs ir: \ n% s'% atbilde.json ())
# Izdrukājiet veiksmes ziņojumu
print ('\ nPieprasījums tiek veiksmīgi apstrādāts.')
cits:
# Izdrukājiet kļūdas ziņojumu nepareizai atbildei
print ('Nederīga atbilde.')

Izeja:

Pēc iepriekš minētā skripta izpildes parādīsies šāda izeja.

2. piemērs: atbildes izmantošana.json () ar izņēmuma apstrādi

Atbildes izmantošanas veids.Šajā piemērā tiks parādīta funkcija json () ar izņēmuma apstrādi. HttpError modulis tiek importēts ar pieprasījuma moduli skriptā, lai apstrādātu izņēmumu. Šeit URI adrese tiks noņemta no lietotāja, lai izmantotu pieprasījumus.get () funkcija. Šī pieprasījuma atbilde tiks saglabāta atbildes mainīgajā. Tālāk atbilde.Funkcija raise_for_status () tiek izmantota, lai pārbaudītu pieprasījuma atbildi, vai tā ir derīga vai nederīga. Ja atbilde nav derīga, tiks izveidots izņēmums un jebkura izņēmuma bloka kods tiks izpildīts, pamatojoties uz izņēmumu. Ja atbilde ir derīga, atbildes mainīgā saturs tiks atkārtots, izmantojot for ciklu, lai drukātu vārdnīcas vērtības katrā rindā, kurā ir atbildes dati.

# Importa pieprasījumu modulis
importa pieprasījumi
# Importēt HTTPError izņēmumu apstrādei
no pieprasījumiem.izņēmumi importē HTTPError
# Definējiet URI
uri = input ('Ievadiet derīgu URI: \ n')
# Drukāt gaidīšanas ziņojumu
print ('Gaida atbildi ... \ n')
mēģiniet:
# Izveidojiet saņemšanas pieprasījumu, lai lasītu github plūsmu saturu
atbilde = pieprasījumi.dabūt (uri)
# Paaugstiniet izņēmumu, ja atbilde bija neveiksmīga
atbildi.rais_for_status ()
# Izlasiet JSON saturu
jsonResponse = atbilde.Json ()
drukāt ("JSON saturs ir: \ n")
# Izlasiet un izdrukājiet katru atslēgas vērtību pāri no JSON atbildes
atslēgai vērtība jsonResponse.preces ():
drukāt (atslēga, ":", vērtība)
# Izdrukāt kļūdas ziņojumu par HTTP kļūdu
izņemot HTTPError kā http_err:
drukāt ('radās HTTP kļūda:% s'% http_err)
# Izdrukāt kļūdas ziņojumu par HTTP kļūdu
izņemot izņēmumu kā kļūdainu:
drukāt ('Notikusi cita kļūda:% s'% err)

Izeja:

Šī skripta parādīsies pēc skripta izpildes, kad lietotājs sniegs neeksistējošo URI vērtību. Šeit blakus attiecīgajam kļūdas ziņojumam tika ģenerēts HTTPError izņēmums.


Šī skripta parādīsies pēc skripta izpildes, kad lietotājs norādīs nederīgu URI vērtību. Šeit tika izveidots otrs izņēmums ar atbilstošu kļūdas ziņojumu.

Šī skripta parādīsies pēc skripta izpildes, kad lietotājs norādīs derīgu URI vērtību. Šeit JSON saturs ir izdrukāts pareizi.

3. piemērs: atbildes izmantošana.json () ar vaicājuma virkni

Atbildes izmantošanas veids.Šajā piemērā tiks parādīta funkcija json () ar vaicājuma virkni. Lūk, pieprasījumi.get () funkcija izmantoja vaicājuma virknes vērtību ar URI, izmantojot parametrus. Tas meklēs PERL valodas ierakstus attiecīgajos krātuvēs. Ja atbildes mainīgajā ir derīga atbilde, tiks izdrukāts repozitorija nosaukums un apraksts, pretējā gadījumā tiks parādīts kļūdas ziņojums.

# Importa pieprasījumu modulis
importa pieprasījumi
# Meklēšana github krātuvē, izmantojot vaicājuma virkni
atbilde = pieprasījumi.gūt(
'https: // api.github.com / search / repositories ',
params = 'q': 'pieprasījumi + valoda: perl',
)
# Pārbaudiet atbildi
ja atbilde:
# Izlasiet JSON saturu
json_response = atbilde.Json ()
# Izlasiet konkrēto repozitorija vienumu
repozitorijs = json_response ['preces'] [0]
# Izdrukājiet krātuves nosaukumu
print ('Krātuves nosaukums:% s'% repozitorijs ["nosaukums"])
# Izdrukājiet krātuves aprakstu
print ('Krātuves apraksts:% s'% repozitorijs ["apraksts"])
cits:
# Izdrukājiet kļūdas ziņojumu nepareizai atbildei
print ('Nederīga atbilde.')

Izeja:

Pēc iepriekš minētā skripta izpildes parādīsies šāda izeja. Šeit tika izdrukāts PERL valodas krātuves nosaukums un apraksts.

Secinājums:

Dažādi veidi, kā nosūtīt pieprasījumu konkrētam URI un lasīt atbildi, izmantojot atbildi.json () funkcija tika parādīta šajā apmācībā, izmantojot vienkāršus piemērus. Es ceru, ka šī apmācība palīdzēs lasītājiem saprast JSON atbildes izmantošanu Python un pareizi to pielietot savā skriptā, kad tas ir nepieciešams.

Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...
Kā izstrādāt spēli Linux
Pirms desmit gadiem maz Linux lietotāju varētu paredzēt, ka viņu iecienītā operētājsistēma kādu dienu būs populāra spēļu platforma komerciālām videosp...
Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...