Pytonorm

Skapa ett JSON-svar i Python

Skapa ett JSON-svar i Python

JSON-filen (JavaScript Object Notation) är ett mycket populärt medium för att utbyta data mellan olika format. Den innehåller data i textformat som stöds av olika språk som Python, PHP, PERL, etc. Huvudsyftet med JSON-filen är att överföra data mellan servern och klienten. Förfrågningarna genereras av Python för att hämta data från en viss resurs-URI. Om svaret på begäran returneras i JSON-format kan svarets innehåll hämtas med svaret.json () -funktion. Det returnerar svaret med ett Python-ordlistaobjekt. Hur denna funktion kan användas för att analysera JSON-svar med hjälp av Python-förfrågningsbiblioteket kommer att visas i denna handledning.

JSON-svar:

Begäringsmodulen i Python innehåller JSON-avkodaren för att arbeta med JSON-data. Svaret.json () -funktionen returnerar ett JSON-svar om JSON-avkodaren fungerar korrekt. Svaret.json () -funktionen höjer undantaget om JSON-avkodaren misslyckas och JSON-svaret inte innehåller några data eller ogiltiga data. Svarets returvärde.raise_for_status () -funktionen eller svaret.status_code måste kontrolleras innan svaret körs.json () -funktion.

Olika användningsområden.json ():

Tre olika användningsområden för svaret.json () -funktionen visas i denna del av självstudien.

Exempel 1: Enkel användning av svar.json ()

Den enkla användningen av svaret.json () -funktionen kommer att beskrivas i detta exempel. Svaret för get-begäran från URI, https: // api.github.com / lagras i en variabel med namnet svar. Därefter kontrolleras värdet på svarsvariabeln. Om svarsvariabeln innehåller något ogiltigt svar kommer det att skriva ut ett felmeddelande. Om svarsvariabeln innehåller ett giltigt svar som är statuskoden för svaret och dess innehåll kommer ett framgångsmeddelande att skrivas ut.

# Importförfrågningsmodul
importförfrågningar
# Skapa en get-begäran
svar = förfrågningar.få ('https: // api.github.com / ')
# Kontrollera svaret
om svar:
# Skriv ut svarsstatuskoden
skriv ut ('Statuskoden för svaret är% d'% svar.status_kod)
# Skriv ut JSON-innehållet
print ('JSON-innehållet är: \ n% s'% svar.json ())
# Skriv ut framgångsmeddelandet
print ('\ nFörfrågan hanteras framgångsrikt.')
annan:
# Skriv ut felmeddelandet för det ogiltiga svaret
skriv ut ('Ogiltigt svar.')

Produktion:

Följande utdata visas efter att ovanstående skript har körts.

Exempel 2: Användning av svar.json () med undantagshantering

Sättet att använda svaret.json () -funktion med undantagshantering visas i detta exempel. HttpError-modulen importeras med begärandemodulen i skriptet för att hantera undantaget. Här kommer URI-adressen att tas från användaren för att använda förfrågningarna.få () funktion. Svaret på denna begäran lagras i svarsvariabeln. Nästa svar.raise_for_status () -funktionen används för att kontrollera svaret på begäran om den är giltig eller ogiltig. Om svaret är ogiltigt kommer ett undantag att genereras och koden för något annat block kommer att köras baserat på undantaget. Om svaret är giltigt kommer innehållet i svarsvariabeln att upprepas med hjälp av en for-loop för att skriva ut värdena i ordboken i varje rad som innehåller svarsdata.

# Importförfrågningsmodul
importförfrågningar
# Importera HTTPError för undantagshantering
från förfrågningar.undantag importerar HTTPError
# Definiera URI
uri = input ('Ange en giltig URI: \ n')
# Skriv ut väntar meddelande
skriv ut ('Väntar på svaret ... \ n')
Prova:
# Skapa en get-begäran om att läsa feedsinnehållet i github
svar = förfrågningar.få (uri)
# Höj undantaget om svaret misslyckades
svar.höj_för_status ()
# Läs JSON-innehållet
jsonResponse = svar.json ()
skriv ut ("JSON-innehållet är: \ n")
# Läs och skriv ut varje nyckel-värdepar från JSON-svaret
för nyckel, värde i jsonResponse.artiklar ():
skriv ut (nyckel, ":", värde)
# Skriv ut felmeddelande för HTTP-felet
utom HTTPError som http_err:
skriv ut ('HTTP-fel inträffade:% s'% http_err)
# Skriv ut felmeddelande för HTTP-felet
utom undantag som fel:
print ('Andra fel inträffade:% s'% err)

Produktion:

Följande utdata visas efter körning av skriptet när ett URI-värde som inte finns kommer att tillhandahållas av användaren. Här hade HTTPError-undantaget genererats vid sidan av motsvarande felmeddelande.


Följande utdata visas efter att manuset har körts när ett ogiltigt URI-värde kommer att tillhandahållas av användaren. Här hade det andra undantaget genererats med ett motsvarande felmeddelande.

Följande utdata visas efter att skriptet har körts när ett giltigt URI-värde kommer att tillhandahållas av användaren. Här har JSON-innehållet skrivits ut ordentligt.

Exempel 3: Användning av svar.json () med frågesträng

Sättet att använda svaret.json () -funktionen med frågesträng visas i detta exempel. Här, förfrågningarna.get () -funktionen använde ett frågesträngsvärde med URI med hjälp av params. Den söker efter posterna för PERL-språket i de angivna förvaren. Om svarsvariabeln innehåller ett giltigt svar kommer förvarets namn och beskrivning att skrivas ut, annars kommer ett felmeddelande att visas.

# Importförfrågningsmodul
importförfrågningar
# Söker i githubs förvar med hjälp av frågesträng
svar = förfrågningar.skaffa sig(
'https: // api.github.com / search / repositories ',
params = 'q': 'begäranden + språk: perl',
)
# Kontrollera svaret
om svar:
# Läs JSON-innehållet
json_response = svar.json ()
# Läs det specifika förvaret
repository = json_response ['items'] [0]
# Skriv ut förvarets namn
print ('Repository name:% s'% repository ["name"])
# Skriv ut förvarets beskrivning
skriv ut ('Förvaringsbeskrivning:% s'% förvar ["beskrivning"])
annan:
# Skriv ut felmeddelandet för det ogiltiga svaret
skriv ut ('Ogiltigt svar.')

Produktion:

Följande utdata visas efter att ovanstående skript har körts. Förvarets namn och beskrivning för PERL-språket hade skrivits ut här.

Slutsats:

Olika sätt att skicka begäran till en viss URI och läsa svaret med hjälp av svaret.json () -funktionen visades i denna handledning med enkla exempel. Jag hoppas att den här guiden hjälper läsarna att förstå användningen av JSON-svar i Python och tillämpa det ordentligt i deras skript när det krävs.

SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...
Battle for Wesnoth Tutorial
Slaget om Wesnoth är ett av de mest populära open source-strategispel som du kan spela just nu. Det här spelet har inte bara utvecklats under mycket l...
0 A.D. Handledning
Av de många strategispelen där ute, 0 A.D. lyckas framstå som en omfattande titel och ett mycket djupt, taktiskt spel trots att det är öppen källkod. ...