Python

Een JSON-antwoord maken in Python

Een JSON-antwoord maken in Python

JSON-bestand (JavaScript Object Notation) is een zeer populair medium om gegevens tussen verschillende formaten uit te wisselen. Het bevat gegevens in tekstindeling die wordt ondersteund door verschillende talen zoals Python, PHP, PERL, enz. Het belangrijkste doel van het JSON-bestand is om gegevens over te dragen tussen de server en de client. De verzoeken worden gegenereerd door Python om de gegevens op te halen uit een bepaalde bron-URI. Als het antwoord van het verzoek wordt geretourneerd in JSON-indeling, kan de inhoud van het antwoord worden opgehaald met behulp van het antwoord.json() functie. Het retourneert het antwoord met behulp van een Python-woordenboekobject. Hoe deze functie kan worden gebruikt om JSON-reacties te parseren met behulp van de Python-verzoekbibliotheek, wordt in deze zelfstudie getoond.

JSON-reactie:

De aanvraagmodule van Python bevat de JSON-decoder om met de JSON-gegevens te werken. Het antwoord.json() functie retourneert een JSON-antwoord als de JSON-decoder correct werkt. Het antwoord.json()-functie verhoogt de uitzondering als de JSON-decoder faalt en het JSON-antwoord geen gegevens of ongeldige gegevens bevat. De retourwaarde van het antwoord.raise_for_status() functie of de  response.status_code moet worden gecontroleerd voordat het antwoord wordt uitgevoerd.json() functie.

Verschillende toepassingen van respons.json():

Drie verschillende toepassingen van het antwoord.json() functie wordt getoond in dit deel van de tutorial.

Voorbeeld-1: Eenvoudig gebruik van respons.json()

Het eenvoudige gebruik van het antwoord.json() functie zal worden toegelicht in dit voorbeeld. Het antwoord voor het get-verzoek van de URI, https://api.github.com/ wordt opgeslagen in een variabele met de naam response. Vervolgens wordt de waarde van de responsvariabele gecontroleerd. Als de responsvariabele een ongeldige respons bevat, wordt er een foutbericht afgedrukt. Als de responsvariabele een geldige respons bevat, wat de statuscode is van de respons en de inhoud ervan, wordt een succesbericht afgedrukt.

# Module voor importverzoeken
importverzoeken
# Maak een verzoek aan
reactie = verzoeken.get('https://api.github.com/')
# Controleer de reactie
als antwoord:
# Druk de antwoordstatuscode af
print('De statuscode van het antwoord is %d' %respons.status code)
# Druk de JSON-inhoud af
print('De JSON-inhoud is: \n%s' %respons.json())
# Druk het succesbericht af
print('\nHet verzoek is succesvol afgehandeld.')
anders:
# Druk de foutmelding af voor het ongeldige antwoord
print('Ongeldige reactie.')

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script:.

Voorbeeld-2: Gebruik van respons.json() met uitzonderingsafhandeling

De manier om het antwoord te gebruiken.json()-functie met uitzonderingsafhandeling wordt in dit voorbeeld getoond. HttpError-module wordt geïmporteerd met de aanvraagmodule in het script om de uitzondering af te handelen. Hier wordt het URI-adres van de gebruiker overgenomen om de verzoeken te gebruiken.get() functie. Het antwoord van dit verzoek wordt opgeslagen in de responsvariabele. Volgende, reactie.raise_for_status() functie wordt gebruikt om het antwoord van het verzoek te controleren of het geldig of ongeldig is. Als het antwoord ongeldig is, wordt een uitzondering gegenereerd en wordt de code van elk behalve blok uitgevoerd op basis van de uitzondering. Als het antwoord geldig is, wordt de inhoud van de antwoordvariabele herhaald met behulp van een for-lus om de waarden van het woordenboek af te drukken in elke regel die de antwoordgegevens bevat.

# Module voor importverzoeken
importverzoeken
# HTTPError importeren voor het afhandelen van uitzonderingen
van verzoeken.uitzonderingen importeren HTTPError
# Definieer de URI
uri = input('Voer een geldige URI in:\n')
# Print wachtend bericht
print('Wachten op antwoord... \n')
proberen:
# Maak een get-verzoek om de feeds-inhoud van github te lezen
reactie = verzoeken.krijgen (uri)
# Maak uitzondering als de reactie niet succesvol was
reactie.raise_for_status()
# Lees de JSON-inhoud
jsonResponse = reactie.json()
print("De JSON-inhoud is: \n")
# Lees en print elk sleutel-waardepaar uit het JSON-antwoord
voor sleutel, waarde in jsonResponse.artikelen():
print(sleutel, ":", waarde)
# Print foutmelding voor de HTTP-fout
behalve HTTPError als http_err:
print('HTTP-fout opgetreden: %s' %http_err)
# Print foutmelding voor de HTTP-fout
uitzondering Uitzondering als err:
print('Andere fout opgetreden: %s' %err)

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van het script wanneer een niet-bestaande URI-waarde wordt verstrekt door de gebruiker:. Hier was de HTTPError-uitzondering gegenereerd naast het bijbehorende foutbericht.


De volgende uitvoer verschijnt na het uitvoeren van het script wanneer een ongeldige URI-waarde wordt verstrekt door de gebruiker:. Hier was de andere uitzondering gegenereerd met een bijbehorende foutmelding.

De volgende uitvoer verschijnt na het uitvoeren van het script wanneer een geldige URI-waarde door de gebruiker wordt verstrekt:. Hier is de JSON-inhoud correct afgedrukt.

Voorbeeld-3: Gebruik van respons.json() met queryreeks

De manier om het antwoord te gebruiken.json() functie met query string wordt in dit voorbeeld getoond. Hier, de verzoeken.get() functie gebruikte een querytekenreekswaarde met de URI met behulp van params. Het zal de vermeldingen voor de PERL-taal in de gegeven repositories doorzoeken. Als de responsvariabele een geldige respons bevat, worden de naam en beschrijving van de repository afgedrukt, anders verschijnt er een foutmelding.

# Module voor importverzoeken
importverzoeken
# Zoeken in de repository van github met behulp van een queryreeks
reactie = verzoeken.krijgen(
'https://api.github.com/zoeken/repositories',
params='q': 'verzoeken+taal:perl',
)
# Controleer de reactie
als antwoord:
# Lees de JSON-inhoud
json_respons = reactie.json()
# Lees het specifieke repository-item
repository = json_response['items'][0]
# Druk de naam van de repository af
print('Repository naam: %s' %repository["name"])
# Print de repositorybeschrijving
print('Repositorybeschrijving: %s' %repository["description"])
anders:
# Druk de foutmelding af voor het ongeldige antwoord
print('Ongeldige reactie.')

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het bovenstaande script:. De naam en beschrijving van de repository voor de PERL-taal waren hier afgedrukt.

Conclusie:

Verschillende manieren om het verzoek naar een bepaalde URI te sturen en het antwoord te lezen met behulp van het antwoord.json() functie werd in deze zelfstudie getoond met behulp van eenvoudige voorbeelden. Ik hoop dat deze tutorial de lezers zal helpen het gebruik van JSON-respons in Python te begrijpen en het correct in hun script toe te passen wanneer dat nodig is.

Doom installeren en spelen op Linux
Inleiding tot Doom De Doom-serie is ontstaan ​​in de jaren 90 na de release van de originele Doom. Het was meteen een hit en vanaf die tijd heeft de g...
Vulkan voor Linux-gebruikers
Met elke nieuwe generatie grafische kaarten zien we game-ontwikkelaars de grenzen van grafische betrouwbaarheid verleggen en een stap dichter bij foto...
OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...